diff --git a/src/sfizz/OpcodeCleanup.cpp b/src/sfizz/OpcodeCleanup.cpp index ce293269..459ce514 100644 --- a/src/sfizz/OpcodeCleanup.cpp +++ b/src/sfizz/OpcodeCleanup.cpp @@ -1,4 +1,4 @@ -/* Generated by re2c 1.3 on Fri Sep 18 00:52:43 2020 */ +/* Generated by re2c 2.0.3 on Mon Sep 28 14:07:14 2020 */ #line 1 "src/sfizz/OpcodeCleanup.re" /* -*- mode: c++; -*- */ // SPDX-License-Identifier: BSD-2-Clause @@ -174,11 +174,12 @@ end_region_oncc: //-------------------------------------------------------------------------- if (scope == kOpcodeScopeRegion) { + again_region: YYCURSOR = opcode.c_str(); -#line 182 "src/sfizz/OpcodeCleanup.cpp" +#line 183 "src/sfizz/OpcodeCleanup.cpp" { char yych; yych = *YYCURSOR; @@ -218,11 +219,11 @@ end_region_oncc: yy19: ++YYCURSOR; yy20: -#line 176 "src/sfizz/OpcodeCleanup.re" +#line 187 "src/sfizz/OpcodeCleanup.re" { goto end_region; } -#line 226 "src/sfizz/OpcodeCleanup.cpp" +#line 227 "src/sfizz/OpcodeCleanup.cpp" yy21: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -658,7 +659,7 @@ yy78: yy79: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy111; + case 'a': goto yy110; default: goto yy34; } yy80: @@ -674,7 +675,7 @@ yy80: case '7': case '8': case '9': goto yy80; - case '_': goto yy112; + case '_': goto yy111; default: goto yy34; } yy82: @@ -682,37 +683,37 @@ yy82: switch (yych) { case 'e': yyt1 = YYCURSOR; - goto yy113; + goto yy112; case 'm': yyt1 = YYCURSOR; - goto yy114; + goto yy113; case 's': yyt1 = YYCURSOR; - goto yy115; + goto yy114; default: goto yy34; } yy83: yych = *++YYCURSOR; switch (yych) { - case 'y': goto yy116; + case 'y': goto yy115; default: goto yy34; } yy84: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy117; + case 'o': goto yy116; default: goto yy34; } yy85: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy118; + case 'i': goto yy117; default: goto yy34; } yy86: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy118; + case 'o': goto yy117; default: goto yy34; } yy87: @@ -724,13 +725,13 @@ yy87: yy88: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy119; + case 'p': goto yy118; default: goto yy34; } yy89: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy120; + case 'n': goto yy119; default: goto yy34; } yy90: @@ -738,76 +739,76 @@ yy90: switch (yych) { case 0x00: yyt2 = yyt3 = NULL; - goto yy121; + goto yy120; case '_': yyt3 = YYCURSOR; - goto yy123; + goto yy122; default: goto yy34; } yy91: yych = *++YYCURSOR; switch (yych) { - case '_': goto yy125; + case '_': goto yy124; default: goto yy34; } yy92: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy126; + case 'o': goto yy125; default: goto yy34; } yy93: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy127; + case 'o': goto yy126; default: goto yy34; } yy94: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy128; + case 'p': goto yy127; default: goto yy34; } yy95: yych = *++YYCURSOR; switch (yych) { - case 'f': goto yy129; + case 'f': goto yy128; default: goto yy34; } yy96: yych = *++YYCURSOR; switch (yych) { - case 'u': goto yy130; + case 'u': goto yy129; default: goto yy34; } yy97: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy131; + case 'e': goto yy130; default: goto yy34; } yy98: yych = *++YYCURSOR; switch (yych) { - case 'w': goto yy132; + case 'w': goto yy131; default: goto yy34; } yy99: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy133; + case 'r': goto yy132; default: goto yy34; } yy100: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy134; + case 'a': goto yy133; default: goto yy34; } yy101: yych = *++YYCURSOR; switch (yych) { - case 'y': goto yy135; + case 'y': goto yy134; default: goto yy34; } yy102: @@ -817,12 +818,12 @@ yy102: yypmatch[0] = yyt1 - 4; yypmatch[1] = YYCURSOR; yypmatch[3] = YYCURSOR - 1; -#line 158 "src/sfizz/OpcodeCleanup.re" +#line 169 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("fil1_", group(1)); goto end_region; } -#line 826 "src/sfizz/OpcodeCleanup.cpp" +#line 827 "src/sfizz/OpcodeCleanup.cpp" yy104: yych = *++YYCURSOR; yy105: @@ -831,7 +832,7 @@ yy105: yy106: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy136; + case 'p': goto yy135; default: goto yy34; } yy107: @@ -841,479 +842,528 @@ yy107: yypmatch[2] = yyt3; yypmatch[3] = yyt2; yypmatch[1] = YYCURSOR; -#line 140 "src/sfizz/OpcodeCleanup.re" +#line 146 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("volume", group(1)); goto end_region; } -#line 850 "src/sfizz/OpcodeCleanup.cpp" +#line 851 "src/sfizz/OpcodeCleanup.cpp" yy109: yych = *++YYCURSOR; - if (yych <= 0x00) { - yyt2 = YYCURSOR; - goto yy107; + switch (yych) { + case 'r': goto yy138; + default: goto yy137; + } +yy110: + yych = *++YYCURSOR; + switch (yych) { + case 'l': goto yy139; + default: goto yy34; } - goto yy109; yy111: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy137; + case 'c': + yyt2 = YYCURSOR; + goto yy140; + case 'o': + yyt2 = YYCURSOR; + goto yy141; + case 'r': + yyt2 = YYCURSOR; + goto yy142; + case 's': + yyt2 = YYCURSOR; + goto yy143; + case 'w': + yyt2 = YYCURSOR; + goto yy144; default: goto yy34; } yy112: yych = *++YYCURSOR; switch (yych) { - case 'c': - yyt2 = YYCURSOR; - goto yy138; - case 'o': - yyt2 = YYCURSOR; - goto yy139; - case 'r': - yyt2 = YYCURSOR; - goto yy140; - case 's': - yyt2 = YYCURSOR; - goto yy141; - case 'w': - yyt2 = YYCURSOR; - goto yy142; + case 'n': goto yy145; default: goto yy34; } yy113: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy143; + case 'o': goto yy146; default: goto yy34; } yy114: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy144; + case 't': goto yy147; default: goto yy34; } yy115: yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy145; - default: goto yy34; - } + if (yych <= 0x00) goto yy148; + goto yy34; yy116: yych = *++YYCURSOR; - if (yych <= 0x00) goto yy146; - goto yy34; + switch (yych) { + case 'd': goto yy150; + default: goto yy34; + } yy117: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy148; + case 'c': goto yy151; + case 'h': goto yy152; default: goto yy34; } yy118: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy149; - case 'h': goto yy150; + case 'h': goto yy153; default: goto yy34; } yy119: yych = *++YYCURSOR; switch (yych) { - case 'h': goto yy151; + case 'a': goto yy154; default: goto yy34; } yy120: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy152; - default: goto yy34; - } -yy121: ++YYCURSOR; yynmatch = 2; yypmatch[0] = yyt1; yypmatch[2] = yyt3; yypmatch[3] = yyt2; yypmatch[1] = YYCURSOR; -#line 144 "src/sfizz/OpcodeCleanup.re" +#line 150 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("pitch", group(1)); goto end_region; } #line 943 "src/sfizz/OpcodeCleanup.cpp" -yy123: +yy122: yych = *++YYCURSOR; if (yych <= 0x00) { yyt2 = YYCURSOR; - goto yy121; + goto yy120; } - goto yy123; -yy125: + goto yy122; +yy124: yych = *++YYCURSOR; switch (yych) { case 'a': yyt2 = YYCURSOR; - goto yy153; + goto yy155; case 'd': yyt2 = YYCURSOR; - goto yy154; + goto yy156; case 'h': yyt2 = YYCURSOR; - goto yy155; + goto yy157; case 'r': yyt2 = YYCURSOR; - goto yy156; + goto yy158; case 's': yyt2 = YYCURSOR; - goto yy157; + goto yy159; + default: goto yy34; + } +yy125: + yych = *++YYCURSOR; + switch (yych) { + case '_': goto yy160; default: goto yy34; } yy126: yych = *++YYCURSOR; switch (yych) { - case '_': goto yy158; + case 'w': goto yy161; default: goto yy34; } yy127: yych = *++YYCURSOR; - switch (yych) { - case 'w': goto yy159; - default: goto yy34; - } -yy128: - yych = *++YYCURSOR; - if (yych <= 0x00) goto yy160; + if (yych <= 0x00) goto yy162; goto yy34; -yy129: +yy128: yych = *++YYCURSOR; switch (yych) { case 0x00: yyt2 = yyt3 = NULL; - goto yy162; - case '_': - yyt3 = YYCURSOR; goto yy164; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + yyt2 = YYCURSOR; + goto yy166; + case '_': + yyt2 = yyt4 = NULL; + yyt3 = YYCURSOR; + goto yy168; + default: goto yy34; + } +yy129: + yych = *++YYCURSOR; + switch (yych) { + case 't': goto yy169; default: goto yy34; } yy130: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy166; + case 's': goto yy170; default: goto yy34; } yy131: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy167; + case 'c': goto yy171; default: goto yy34; } yy132: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy168; + case 'e': goto yy172; default: goto yy34; } yy133: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy169; + case 'i': goto yy173; default: goto yy34; } yy134: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy170; + case 'p': goto yy174; default: goto yy34; } yy135: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy171; + case 'e': goto yy175; default: goto yy34; } yy136: yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy172; - default: goto yy34; - } yy137: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy173; - default: goto yy34; + if (yych <= 0x00) { + yyt2 = YYCURSOR; + goto yy107; } + goto yy136; yy138: yych = *++YYCURSOR; switch (yych) { - case 'u': goto yy174; - default: goto yy34; + case 'a': goto yy176; + default: goto yy137; } yy139: yych = *++YYCURSOR; switch (yych) { - case 'f': goto yy175; + case 'c': goto yy177; default: goto yy34; } yy140: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy176; - case 'e': goto yy177; + case 'u': goto yy178; default: goto yy34; } yy141: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy178; + case 'f': goto yy179; default: goto yy34; } yy142: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy179; + case 'a': goto yy180; + case 'e': goto yy181; default: goto yy34; } yy143: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy180; + case 'c': goto yy182; default: goto yy34; } yy144: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy181; + case 'a': goto yy183; default: goto yy34; } yy145: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy182; + case 'd': goto yy184; default: goto yy34; } yy146: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy185; + default: goto yy34; + } +yy147: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy186; + default: goto yy34; + } +yy148: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; yypmatch[0] = yyt1 - 3; yypmatch[1] = YYCURSOR; yypmatch[3] = YYCURSOR - 1; -#line 118 "src/sfizz/OpcodeCleanup.re" +#line 119 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("off_", group(1)); goto end_region; } -#line 1107 "src/sfizz/OpcodeCleanup.cpp" -yy148: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy116; - default: goto yy34; - } -yy149: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy183; - default: goto yy34; - } +#line 1134 "src/sfizz/OpcodeCleanup.cpp" yy150: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy184; + case 'e': goto yy115; default: goto yy34; } yy151: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy185; + case 'c': goto yy187; default: goto yy34; } yy152: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy186; + case 'd': goto yy188; default: goto yy34; } yy153: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy187; + case 'o': goto yy189; default: goto yy34; } yy154: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy188; + case 'n': goto yy190; default: goto yy34; } yy155: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy189; + case 't': goto yy191; default: goto yy34; } yy156: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy190; + case 'e': goto yy192; default: goto yy34; } yy157: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy191; - case 'u': goto yy192; + case 'o': goto yy193; default: goto yy34; } yy158: yych = *++YYCURSOR; switch (yych) { - case 'd': - yyt2 = YYCURSOR; - goto yy193; - case 'f': - yyt2 = YYCURSOR; - goto yy194; + case 'e': goto yy194; default: goto yy34; } yy159: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy128; + case 't': goto yy195; + case 'u': goto yy196; default: goto yy34; } yy160: + yych = *++YYCURSOR; + switch (yych) { + case 'd': + yyt2 = YYCURSOR; + goto yy197; + case 'f': + yyt2 = YYCURSOR; + goto yy198; + default: goto yy34; + } +yy161: + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy127; + default: goto yy34; + } +yy162: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; yypmatch[0] = yyt1 - 4; yypmatch[1] = YYCURSOR; yypmatch[3] = YYCURSOR - 1; -#line 122 "src/sfizz/OpcodeCleanup.re" +#line 123 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("bend_", group(1)); goto end_region; } -#line 1198 "src/sfizz/OpcodeCleanup.cpp" -yy162: +#line 1225 "src/sfizz/OpcodeCleanup.cpp" +yy164: ++YYCURSOR; yynmatch = 2; yypmatch[0] = yyt1; yypmatch[2] = yyt3; yypmatch[3] = yyt2; yypmatch[1] = YYCURSOR; -#line 162 "src/sfizz/OpcodeCleanup.re" +#line 173 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("cutoff1", group(1)); goto end_region; } -#line 1211 "src/sfizz/OpcodeCleanup.cpp" -yy164: - yych = *++YYCURSOR; - if (yych <= 0x00) { - yyt2 = YYCURSOR; - goto yy162; - } - goto yy164; +#line 1238 "src/sfizz/OpcodeCleanup.cpp" yy166: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy195; - default: goto yy34; - } -yy167: - yych = *++YYCURSOR; - switch (yych) { - case 'o': goto yy196; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy166; + case '_': + yyt4 = YYCURSOR; + goto yy199; default: goto yy34; } yy168: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy197; - default: goto yy34; + case 'r': goto yy202; + default: goto yy201; } yy169: yych = *++YYCURSOR; switch (yych) { - case 'q': goto yy132; + case 'o': goto yy203; default: goto yy34; } yy170: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy132; + case 'o': goto yy204; default: goto yy34; } yy171: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy198; + case 'c': goto yy205; default: goto yy34; } yy172: yych = *++YYCURSOR; - if (yych <= 0x00) goto yy199; - goto yy34; + switch (yych) { + case 'q': goto yy131; + default: goto yy34; + } yy173: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy201; + case 'n': goto yy131; default: goto yy34; } yy174: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy202; + case 'e': goto yy206; default: goto yy34; } yy175: yych = *++YYCURSOR; - switch (yych) { - case 'f': goto yy203; - default: goto yy34; - } + if (yych <= 0x00) goto yy207; + goto yy34; yy176: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy204; - default: goto yy34; + case 'n': goto yy209; + default: goto yy137; } yy177: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy205; + case 'c': goto yy210; default: goto yy34; } yy178: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy206; + case 't': goto yy211; default: goto yy34; } yy179: yych = *++YYCURSOR; switch (yych) { - case 'v': goto yy207; + case 'f': goto yy212; default: goto yy34; } yy180: yych = *++YYCURSOR; - if (yych <= 0x00) goto yy208; - goto yy34; + switch (yych) { + case 't': goto yy213; + default: goto yy34; + } yy181: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy180; + case 's': goto yy214; default: goto yy34; } yy182: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy210; + case 'a': goto yy215; default: goto yy34; } yy183: + yych = *++YYCURSOR; + switch (yych) { + case 'v': goto yy216; + default: goto yy34; + } +yy184: + yych = *++YYCURSOR; + if (yych <= 0x00) goto yy217; + goto yy34; +yy185: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy184; + default: goto yy34; + } +yy186: + yych = *++YYCURSOR; + switch (yych) { + case 'r': goto yy219; + default: goto yy34; + } +yy187: yych = *++YYCURSOR; switch (yych) { case '0': @@ -1327,90 +1377,110 @@ yy183: case '8': case '9': yyt1 = YYCURSOR; - goto yy211; - default: goto yy34; - } -yy184: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy213; - default: goto yy34; - } -yy185: - yych = *++YYCURSOR; - switch (yych) { - case 'n': goto yy214; - default: goto yy34; - } -yy186: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy215; - default: goto yy34; - } -yy187: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy216; + goto yy220; default: goto yy34; } yy188: yych = *++YYCURSOR; switch (yych) { - case 'c': - case 'l': goto yy217; + case 'c': goto yy222; default: goto yy34; } yy189: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy218; + case 'n': goto yy223; default: goto yy34; } yy190: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy219; + case 'c': goto yy224; default: goto yy34; } yy191: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy220; + case 't': goto yy225; default: goto yy34; } yy192: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy221; + case 'c': + case 'l': goto yy226; default: goto yy34; } yy193: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy222; + case 'l': goto yy227; default: goto yy34; } yy194: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy223; - case 'r': goto yy224; + case 'l': goto yy228; default: goto yy34; } yy195: yych = *++YYCURSOR; switch (yych) { - case 'f': goto yy225; + case 'a': goto yy229; default: goto yy34; } yy196: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy226; + case 's': goto yy230; default: goto yy34; } yy197: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy231; + default: goto yy34; + } +yy198: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy232; + case 'r': goto yy233; + default: goto yy34; + } +yy199: + yych = *++YYCURSOR; + switch (yych) { + case 'r': goto yy234; + default: goto yy34; + } +yy200: + yych = *++YYCURSOR; +yy201: + if (yych <= 0x00) { + yyt2 = YYCURSOR; + goto yy164; + } + goto yy200; +yy202: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy235; + default: goto yy201; + } +yy203: + yych = *++YYCURSOR; + switch (yych) { + case 'f': goto yy236; + default: goto yy34; + } +yy204: + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy237; + default: goto yy34; + } +yy205: yych = *++YYCURSOR; switch (yych) { case '0': @@ -1424,25 +1494,31 @@ yy197: case '8': case '9': yyt3 = YYCURSOR; - goto yy227; + goto yy238; default: goto yy34; } -yy198: +yy206: yych = *++YYCURSOR; - if (yych <= 0x00) goto yy229; + if (yych <= 0x00) goto yy240; goto yy34; -yy199: +yy207: ++YYCURSOR; yynmatch = 1; yypmatch[0] = YYCURSOR - 8; yypmatch[1] = YYCURSOR; -#line 126 "src/sfizz/OpcodeCleanup.re" +#line 127 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("fil1_type"); goto end_region; } -#line 1445 "src/sfizz/OpcodeCleanup.cpp" -yy201: +#line 1515 "src/sfizz/OpcodeCleanup.cpp" +yy209: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy242; + default: goto yy137; + } +yy210: yych = *++YYCURSOR; switch (yych) { case '0': @@ -1456,168 +1532,68 @@ yy201: case '8': case '9': yyt1 = YYCURSOR; - goto yy231; + goto yy243; default: goto yy34; } -yy202: +yy211: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy233; + case 'o': goto yy245; default: goto yy34; } -yy203: +yy212: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy234; + case 's': goto yy246; default: goto yy34; } -yy204: +yy213: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy235; + case 'i': goto yy247; default: goto yy34; } -yy205: +yy214: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy236; + case 'o': goto yy248; default: goto yy34; } -yy206: +yy215: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy207; + case 'l': goto yy216; default: goto yy34; } -yy207: +yy216: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy237; + case 'e': goto yy249; default: goto yy34; } -yy208: +yy217: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; yypmatch[0] = yyt1 - 4; yypmatch[1] = YYCURSOR; yypmatch[3] = YYCURSOR - 1; -#line 114 "src/sfizz/OpcodeCleanup.re" +#line 115 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("loop_", group(1)); goto end_region; } -#line 1511 "src/sfizz/OpcodeCleanup.cpp" -yy210: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy180; - default: goto yy34; - } -yy211: - yych = *++YYCURSOR; - switch (yych) { - case 0x00: goto yy238; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy211; - default: goto yy34; - } -yy213: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy240; - default: goto yy34; - } -yy214: - yych = *++YYCURSOR; - switch (yych) { - case 'y': goto yy241; - default: goto yy34; - } -yy215: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy242; - default: goto yy34; - } -yy216: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy243; - default: goto yy34; - } -yy217: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy244; - default: goto yy34; - } -yy218: - yych = *++YYCURSOR; - switch (yych) { - case 'd': goto yy245; - default: goto yy34; - } +#line 1587 "src/sfizz/OpcodeCleanup.cpp" yy219: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy246; + case 't': goto yy184; default: goto yy34; } yy220: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy247; - default: goto yy34; - } -yy221: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy248; - default: goto yy34; - } -yy222: - yych = *++YYCURSOR; - switch (yych) { - case 'p': goto yy249; - default: goto yy34; - } -yy223: - yych = *++YYCURSOR; - switch (yych) { - case 'd': goto yy250; - default: goto yy34; - } -yy224: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy251; - default: goto yy34; - } -yy225: - yych = *++YYCURSOR; - switch (yych) { - case 'f': goto yy252; - default: goto yy34; - } -yy226: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy253; - default: goto yy34; - } -yy227: - yych = *++YYCURSOR; - switch (yych) { - case 0x00: goto yy254; + case 0x00: goto yy250; case '0': case '1': case '2': @@ -1627,26 +1603,144 @@ yy227: case '6': case '7': case '8': - case '9': goto yy227; + case '9': goto yy220; + default: goto yy34; + } +yy222: + yych = *++YYCURSOR; + switch (yych) { + case 'c': goto yy252; + default: goto yy34; + } +yy223: + yych = *++YYCURSOR; + switch (yych) { + case 'y': goto yy253; + default: goto yy34; + } +yy224: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy254; + default: goto yy34; + } +yy225: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy255; + default: goto yy34; + } +yy226: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy256; + default: goto yy34; + } +yy227: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy257; + default: goto yy34; + } +yy228: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy258; default: goto yy34; } yy229: + yych = *++YYCURSOR; + switch (yych) { + case 'r': goto yy259; + default: goto yy34; + } +yy230: + yych = *++YYCURSOR; + switch (yych) { + case 't': goto yy260; + default: goto yy34; + } +yy231: + yych = *++YYCURSOR; + switch (yych) { + case 'p': goto yy261; + default: goto yy34; + } +yy232: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy262; + default: goto yy34; + } +yy233: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy263; + default: goto yy34; + } +yy234: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy264; + default: goto yy34; + } +yy235: + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy265; + default: goto yy201; + } +yy236: + yych = *++YYCURSOR; + switch (yych) { + case 'f': goto yy266; + default: goto yy34; + } +yy237: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy267; + default: goto yy34; + } +yy238: + yych = *++YYCURSOR; + switch (yych) { + case 0x00: goto yy268; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy238; + default: goto yy34; + } +yy240: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; yypmatch[0] = yyt1 - 3; yypmatch[1] = YYCURSOR; yypmatch[3] = YYCURSOR - 5; -#line 130 "src/sfizz/OpcodeCleanup.re" +#line 131 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("fil", group(1), "_type"); goto end_region; } -#line 1646 "src/sfizz/OpcodeCleanup.cpp" -yy231: +#line 1734 "src/sfizz/OpcodeCleanup.cpp" +yy242: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy256; + case 'o': goto yy270; + default: goto yy137; + } +yy243: + yych = *++YYCURSOR; + switch (yych) { + case 0x00: goto yy271; case '0': case '1': case '2': @@ -1656,38 +1750,38 @@ yy231: case '6': case '7': case '8': - case '9': goto yy231; + case '9': goto yy243; default: goto yy34; } -yy233: +yy245: yych = *++YYCURSOR; switch (yych) { - case 'f': goto yy258; + case 'f': goto yy273; default: goto yy34; } -yy234: +yy246: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy259; + case 'e': goto yy274; default: goto yy34; } -yy235: +yy247: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy237; + case 'o': goto yy249; default: goto yy34; } -yy236: +yy248: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy260; + case 'n': goto yy275; default: goto yy34; } -yy237: +yy249: yych = *++YYCURSOR; - if (yych <= 0x00) goto yy261; + if (yych <= 0x00) goto yy276; goto yy34; -yy238: +yy250: ++YYCURSOR; yynmatch = 3; yypmatch[4] = yyt1; @@ -1696,13 +1790,13 @@ yy238: yypmatch[2] = yyt1 - 4; yypmatch[3] = yyt1 - 2; yypmatch[5] = YYCURSOR - 1; -#line 149 "src/sfizz/OpcodeCleanup.re" +#line 155 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("start_", group(1), "cc", group(2)); goto end_region; } -#line 1705 "src/sfizz/OpcodeCleanup.cpp" -yy240: +#line 1799 "src/sfizz/OpcodeCleanup.cpp" +yy252: yych = *++YYCURSOR; switch (yych) { case '0': @@ -1716,99 +1810,111 @@ yy240: case '8': case '9': yyt1 = YYCURSOR; - goto yy263; - default: goto yy34; - } -yy241: - yych = *++YYCURSOR; - switch (yych) { - case '_': goto yy265; - default: goto yy34; - } -yy242: - yych = *++YYCURSOR; - switch (yych) { - case 0x00: - yyt2 = yyt3 = NULL; - goto yy266; - case '_': - yyt3 = YYCURSOR; - goto yy268; - default: goto yy34; - } -yy243: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy270; - default: goto yy34; - } -yy244: - yych = *++YYCURSOR; - switch (yych) { - case 'y': goto yy245; - default: goto yy34; - } -yy245: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy271; - default: goto yy34; - } -yy246: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy272; - default: goto yy34; - } -yy247: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy245; - default: goto yy34; - } -yy248: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy273; - default: goto yy34; - } -yy249: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy274; - default: goto yy34; - } -yy250: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy275; - default: goto yy34; - } -yy251: - yych = *++YYCURSOR; - switch (yych) { - case 'q': goto yy275; - default: goto yy34; - } -yy252: - yych = *++YYCURSOR; - switch (yych) { - case 0x00: - yyt4 = yyt5 = NULL; - yyt3 = YYCURSOR; - goto yy276; - case '_': - yyt3 = yyt5 = YYCURSOR; goto yy278; default: goto yy34; } yy253: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy280; + case '_': goto yy280; default: goto yy34; } yy254: + yych = *++YYCURSOR; + switch (yych) { + case 0x00: + yyt2 = yyt3 = NULL; + goto yy281; + case '_': + yyt3 = YYCURSOR; + goto yy283; + default: goto yy34; + } +yy255: + yych = *++YYCURSOR; + switch (yych) { + case 'c': goto yy285; + default: goto yy34; + } +yy256: + yych = *++YYCURSOR; + switch (yych) { + case 'y': goto yy257; + default: goto yy34; + } +yy257: + yych = *++YYCURSOR; + switch (yych) { + case 'c': goto yy286; + default: goto yy34; + } +yy258: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy287; + default: goto yy34; + } +yy259: + yych = *++YYCURSOR; + switch (yych) { + case 't': goto yy257; + default: goto yy34; + } +yy260: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy288; + default: goto yy34; + } +yy261: + yych = *++YYCURSOR; + switch (yych) { + case 't': goto yy289; + default: goto yy34; + } +yy262: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy290; + default: goto yy34; + } +yy263: + yych = *++YYCURSOR; + switch (yych) { + case 'q': goto yy290; + default: goto yy34; + } +yy264: + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy291; + default: goto yy34; + } +yy265: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy292; + default: goto yy201; + } +yy266: + yych = *++YYCURSOR; + switch (yych) { + case 0x00: + yyt4 = yyt5 = NULL; + yyt3 = YYCURSOR; + goto yy293; + case '_': + yyt3 = yyt5 = YYCURSOR; + goto yy295; + default: goto yy34; + } +yy267: + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy297; + default: goto yy34; + } +yy268: ++YYCURSOR; yynmatch = 4; yypmatch[2] = yyt1; @@ -1819,13 +1925,19 @@ yy254: yypmatch[3] = yyt2 - 1; yypmatch[5] = yyt3 - 2; yypmatch[7] = YYCURSOR - 1; -#line 98 "src/sfizz/OpcodeCleanup.re" +#line 99 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3)); goto end_region; } -#line 1828 "src/sfizz/OpcodeCleanup.cpp" -yy256: +#line 1934 "src/sfizz/OpcodeCleanup.cpp" +yy270: + yych = *++YYCURSOR; + switch (yych) { + case 'm': goto yy298; + default: goto yy137; + } +yy271: ++YYCURSOR; yynmatch = 3; yypmatch[4] = yyt1; @@ -1834,31 +1946,31 @@ yy256: yypmatch[2] = yyt1 - 8; yypmatch[3] = yyt1 - 6; yypmatch[5] = YYCURSOR - 1; -#line 171 "src/sfizz/OpcodeCleanup.re" +#line 182 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat(group(1), "hdcc", group(2)); goto end_region; } -#line 1843 "src/sfizz/OpcodeCleanup.cpp" -yy258: +#line 1955 "src/sfizz/OpcodeCleanup.cpp" +yy273: yych = *++YYCURSOR; switch (yych) { - case 'f': goto yy281; + case 'f': goto yy299; default: goto yy34; } -yy259: +yy274: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy237; + case 't': goto yy249; default: goto yy34; } -yy260: +yy275: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy282; + case 'a': goto yy300; default: goto yy34; } -yy261: +yy276: ++YYCURSOR; yynmatch = 3; yypmatch[2] = yyt1; @@ -1867,16 +1979,16 @@ yy261: yypmatch[1] = YYCURSOR; yypmatch[3] = yyt2 - 1; yypmatch[5] = YYCURSOR - 1; -#line 102 "src/sfizz/OpcodeCleanup.re" +#line 103 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat(group(1), "_", group(2), "1"); goto end_region; } -#line 1876 "src/sfizz/OpcodeCleanup.cpp" -yy263: +#line 1988 "src/sfizz/OpcodeCleanup.cpp" +yy278: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy283; + case 0x00: goto yy301; case '0': case '1': case '2': @@ -1886,72 +1998,84 @@ yy263: case '6': case '7': case '8': - case '9': goto yy263; + case '9': goto yy278; default: goto yy34; } -yy265: +yy280: yych = *++YYCURSOR; switch (yych) { - case 'g': goto yy285; + case 'g': goto yy303; default: goto yy34; } -yy266: +yy281: ++YYCURSOR; yynmatch = 2; yypmatch[0] = yyt1; yypmatch[2] = yyt3; yypmatch[3] = yyt2; yypmatch[1] = YYCURSOR; -#line 166 "src/sfizz/OpcodeCleanup.re" +#line 177 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("resonance1", group(1)); goto end_region; } -#line 1911 "src/sfizz/OpcodeCleanup.cpp" -yy268: +#line 2023 "src/sfizz/OpcodeCleanup.cpp" +yy283: yych = *++YYCURSOR; if (yych <= 0x00) { yyt2 = YYCURSOR; - goto yy266; + goto yy281; } - goto yy268; -yy270: + goto yy283; +yy285: yych = *++YYCURSOR; switch (yych) { - case 'k': goto yy245; + case 'k': goto yy257; default: goto yy34; } -yy271: +yy286: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy286; + case 'c': goto yy304; default: goto yy34; } -yy272: +yy287: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy287; + case 's': goto yy305; default: goto yy34; } -yy273: +yy288: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy288; + case 'i': goto yy306; default: goto yy34; } -yy274: +yy289: yych = *++YYCURSOR; switch (yych) { - case 'h': goto yy275; + case 'h': goto yy290; default: goto yy34; } -yy275: +yy290: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy289; + case 'c': goto yy307; default: goto yy34; } -yy276: +yy291: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy308; + default: goto yy34; + } +yy292: + yych = *++YYCURSOR; + switch (yych) { + case 'o': goto yy309; + default: goto yy201; + } +yy293: ++YYCURSOR; yynmatch = 4; yypmatch[2] = yyt1; @@ -1962,44 +2086,48 @@ yy276: yypmatch[0] = yyt1; yypmatch[1] = YYCURSOR; yypmatch[3] = yyt2 - 1; -#line 110 "src/sfizz/OpcodeCleanup.re" +#line 111 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat(group(1), "_", group(2), "1", group(3)); goto end_region; } -#line 1971 "src/sfizz/OpcodeCleanup.cpp" -yy278: +#line 2095 "src/sfizz/OpcodeCleanup.cpp" +yy295: yych = *++YYCURSOR; if (yych <= 0x00) { yyt4 = YYCURSOR; - goto yy276; + goto yy293; } - goto yy278; -yy280: + goto yy295; +yy297: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy290; + case 'c': goto yy310; default: goto yy34; } -yy281: +yy298: + yych = *++YYCURSOR; + if (yych <= 0x00) goto yy311; + goto yy136; +yy299: yych = *++YYCURSOR; switch (yych) { case 0x00: yyt4 = yyt5 = NULL; yyt3 = YYCURSOR; - goto yy291; + goto yy313; case '_': yyt3 = yyt5 = YYCURSOR; - goto yy293; + goto yy315; default: goto yy34; } -yy282: +yy300: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy295; + case 'n': goto yy317; default: goto yy34; } -yy283: +yy301: ++YYCURSOR; yynmatch = 3; yypmatch[4] = yyt1; @@ -2008,19 +2136,19 @@ yy283: yypmatch[2] = yyt1 - 6; yypmatch[3] = yyt1 - 4; yypmatch[5] = YYCURSOR - 1; -#line 153 "src/sfizz/OpcodeCleanup.re" +#line 159 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("start_", group(1), "hdcc", group(2)); goto end_region; } -#line 2017 "src/sfizz/OpcodeCleanup.cpp" -yy285: +#line 2145 "src/sfizz/OpcodeCleanup.cpp" +yy303: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy296; + case 'r': goto yy318; default: goto yy34; } -yy286: +yy304: yych = *++YYCURSOR; switch (yych) { case '0': @@ -2034,34 +2162,57 @@ yy286: case '8': case '9': yyt3 = YYCURSOR; - goto yy297; + goto yy319; default: goto yy34; } -yy287: +yy305: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy245; + case 'e': goto yy257; default: goto yy34; } -yy288: +yy306: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy245; + case 'n': goto yy257; default: goto yy34; } -yy289: +yy307: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy299; + case 'c': goto yy321; default: goto yy34; } -yy290: +yy308: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy252; + case 'o': goto yy322; default: goto yy34; } -yy291: +yy309: + yych = *++YYCURSOR; + switch (yych) { + case 'm': goto yy323; + default: goto yy201; + } +yy310: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy266; + default: goto yy34; + } +yy311: + ++YYCURSOR; + yynmatch = 1; + yypmatch[0] = YYCURSOR - 12; + yypmatch[1] = YYCURSOR; +#line 141 "src/sfizz/OpcodeCleanup.re" + { + opcode = "amp_random"; + goto end_region; + } +#line 2215 "src/sfizz/OpcodeCleanup.cpp" +yy313: ++YYCURSOR; yynmatch = 4; yypmatch[2] = yyt1; @@ -2072,35 +2223,35 @@ yy291: yypmatch[0] = yyt1; yypmatch[1] = YYCURSOR; yypmatch[3] = yyt2 - 1; -#line 106 "src/sfizz/OpcodeCleanup.re" +#line 107 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat(group(1), "_", group(2), "1", group(3)); goto end_region; } -#line 2081 "src/sfizz/OpcodeCleanup.cpp" -yy293: +#line 2232 "src/sfizz/OpcodeCleanup.cpp" +yy315: yych = *++YYCURSOR; if (yych <= 0x00) { yyt4 = YYCURSOR; - goto yy291; + goto yy313; } - goto yy293; -yy295: + goto yy315; +yy317: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy300; + case 'c': goto yy324; default: goto yy34; } -yy296: +yy318: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy301; + case 'o': goto yy325; default: goto yy34; } -yy297: +yy319: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy302; + case 0x00: goto yy326; case '0': case '1': case '2': @@ -2110,10 +2261,10 @@ yy297: case '6': case '7': case '8': - case '9': goto yy297; + case '9': goto yy319; default: goto yy34; } -yy299: +yy321: yych = *++YYCURSOR; switch (yych) { case '0': @@ -2127,22 +2278,32 @@ yy299: case '8': case '9': yyt3 = YYCURSOR; - goto yy304; + goto yy328; default: goto yy34; } -yy300: +yy322: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy281; + case 'm': goto yy330; default: goto yy34; } -yy301: +yy323: + yych = *++YYCURSOR; + if (yych <= 0x00) goto yy331; + goto yy200; +yy324: yych = *++YYCURSOR; switch (yych) { - case 'u': goto yy306; + case 'e': goto yy299; default: goto yy34; } -yy302: +yy325: + yych = *++YYCURSOR; + switch (yych) { + case 'u': goto yy333; + default: goto yy34; + } +yy326: ++YYCURSOR; yynmatch = 4; yypmatch[2] = yyt1; @@ -2153,16 +2314,16 @@ yy302: yypmatch[3] = yyt2 - 1; yypmatch[5] = yyt3 - 2; yypmatch[7] = YYCURSOR - 1; -#line 94 "src/sfizz/OpcodeCleanup.re" +#line 95 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3)); goto end_region; } -#line 2162 "src/sfizz/OpcodeCleanup.cpp" -yy304: +#line 2323 "src/sfizz/OpcodeCleanup.cpp" +yy328: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy307; + case 0x00: goto yy334; case '0': case '1': case '2': @@ -2172,16 +2333,32 @@ yy304: case '6': case '7': case '8': - case '9': goto yy304; + case '9': goto yy328; default: goto yy34; } -yy306: +yy330: + yych = *++YYCURSOR; + if (yych >= 0x01) goto yy34; +yy331: + ++YYCURSOR; + yynmatch = 2; + yypmatch[0] = yyt1; + yypmatch[2] = yyt2; + yypmatch[3] = yyt4; + yypmatch[1] = YYCURSOR; +#line 164 "src/sfizz/OpcodeCleanup.re" + { + opcode = absl::StrCat("fil", group(1), "_random"); + goto again_region; + } +#line 2355 "src/sfizz/OpcodeCleanup.cpp" +yy333: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy309; + case 'p': goto yy336; default: goto yy34; } -yy307: +yy334: ++YYCURSOR; yynmatch = 4; yypmatch[2] = yyt1; @@ -2192,27 +2369,27 @@ yy307: yypmatch[3] = yyt2 - 1; yypmatch[5] = yyt3 - 2; yypmatch[7] = YYCURSOR - 1; -#line 90 "src/sfizz/OpcodeCleanup.re" +#line 91 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3)); goto end_region; } -#line 2201 "src/sfizz/OpcodeCleanup.cpp" -yy309: +#line 2378 "src/sfizz/OpcodeCleanup.cpp" +yy336: yych = *++YYCURSOR; if (yych >= 0x01) goto yy34; ++YYCURSOR; yynmatch = 1; yypmatch[0] = YYCURSOR - 16; yypmatch[1] = YYCURSOR; -#line 135 "src/sfizz/OpcodeCleanup.re" +#line 136 "src/sfizz/OpcodeCleanup.re" { opcode = "group"; goto end_region; } -#line 2214 "src/sfizz/OpcodeCleanup.cpp" +#line 2391 "src/sfizz/OpcodeCleanup.cpp" } -#line 180 "src/sfizz/OpcodeCleanup.re" +#line 191 "src/sfizz/OpcodeCleanup.re" end_region: @@ -2227,80 +2404,80 @@ end_region: YYCURSOR = opcode.c_str(); -#line 2231 "src/sfizz/OpcodeCleanup.cpp" +#line 2408 "src/sfizz/OpcodeCleanup.cpp" { char yych; yych = *YYCURSOR; switch (yych) { - case 's': goto yy316; - default: goto yy314; + case 's': goto yy343; + default: goto yy341; } -yy314: +yy341: ++YYCURSOR; -yy315: -#line 200 "src/sfizz/OpcodeCleanup.re" +yy342: +#line 211 "src/sfizz/OpcodeCleanup.re" { goto end_control; } -#line 2246 "src/sfizz/OpcodeCleanup.cpp" -yy316: +#line 2423 "src/sfizz/OpcodeCleanup.cpp" +yy343: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'e': goto yy317; - default: goto yy315; + case 'e': goto yy344; + default: goto yy342; } -yy317: +yy344: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy319; - default: goto yy318; + case 't': goto yy346; + default: goto yy345; } -yy318: +yy345: YYCURSOR = YYMARKER; - goto yy315; -yy319: + goto yy342; +yy346: yych = *++YYCURSOR; switch (yych) { - case '_': goto yy320; - default: goto yy318; + case '_': goto yy347; + default: goto yy345; } -yy320: +yy347: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy321; - default: goto yy318; + case 'r': goto yy348; + default: goto yy345; } -yy321: +yy348: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy322; - default: goto yy318; + case 'e': goto yy349; + default: goto yy345; } -yy322: +yy349: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy323; - default: goto yy318; + case 'a': goto yy350; + default: goto yy345; } -yy323: +yy350: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy324; - default: goto yy318; + case 'l': goto yy351; + default: goto yy345; } -yy324: +yy351: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy325; - default: goto yy318; + case 'c': goto yy352; + default: goto yy345; } -yy325: +yy352: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy326; - default: goto yy318; + case 'c': goto yy353; + default: goto yy345; } -yy326: +yy353: yych = *++YYCURSOR; switch (yych) { case '0': @@ -2314,13 +2491,13 @@ yy326: case '8': case '9': yyt1 = YYCURSOR; - goto yy327; - default: goto yy318; + goto yy354; + default: goto yy345; } -yy327: +yy354: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy329; + case 0x00: goto yy356; case '0': case '1': case '2': @@ -2330,24 +2507,24 @@ yy327: case '6': case '7': case '8': - case '9': goto yy327; - default: goto yy318; + case '9': goto yy354; + default: goto yy345; } -yy329: +yy356: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; yypmatch[0] = yyt1 - 10; yypmatch[1] = YYCURSOR; yypmatch[3] = YYCURSOR - 1; -#line 195 "src/sfizz/OpcodeCleanup.re" +#line 206 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("set_hdcc", group(1)); goto end_control; } -#line 2349 "src/sfizz/OpcodeCleanup.cpp" +#line 2526 "src/sfizz/OpcodeCleanup.cpp" } -#line 204 "src/sfizz/OpcodeCleanup.re" +#line 215 "src/sfizz/OpcodeCleanup.re" end_control: diff --git a/src/sfizz/OpcodeCleanup.re b/src/sfizz/OpcodeCleanup.re index c744d4ed..245f62d5 100644 --- a/src/sfizz/OpcodeCleanup.re +++ b/src/sfizz/OpcodeCleanup.re @@ -76,6 +76,7 @@ end_region_oncc: //-------------------------------------------------------------------------- if (scope == kOpcodeScopeRegion) { + again_region: YYCURSOR = opcode.c_str(); @@ -137,6 +138,11 @@ end_region_oncc: goto end_region; } + "gain_random" END { + opcode = "amp_random"; + goto end_region; + } + "gain" ("_" any)? END { opcode = absl::StrCat("volume", group(1)); goto end_region; @@ -155,6 +161,11 @@ end_region_oncc: goto end_region; } + "cutoff" (number)? "_random" END { + opcode = absl::StrCat("fil", group(1), "_random"); + goto again_region; + } + "fil_" (any) END { opcode = absl::StrCat("fil1_", group(1)); goto end_region; diff --git a/src/sfizz/Region.cpp b/src/sfizz/Region.cpp index c599bc66..2bb808aa 100644 --- a/src/sfizz/Region.cpp +++ b/src/sfizz/Region.cpp @@ -654,7 +654,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode) setValueFromOpcode(opcode, filters[filterIndex].veltrack, Default::filterVeltrackRange); } break; - case hash("fil&_random"): // also fil_random + case hash("fil&_random"): // also fil_random, cutoff_random, cutoff&_random { const auto filterIndex = opcode.parameters.front() - 1; if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters)) diff --git a/tests/OpcodeT.cpp b/tests/OpcodeT.cpp index 771db749..495a4f5f 100644 --- a/tests/OpcodeT.cpp +++ b/tests/OpcodeT.cpp @@ -233,6 +233,11 @@ TEST_CASE("[Opcode] Normalization") {"cutoff_foobar", "cutoff1_foobar"}, {"resonance", "resonance1"}, {"resonance_foobar", "resonance1_foobar"}, + // Cakewalk aliases + {"cutoff_random", "fil1_random"}, + {"cutoff1_random", "fil1_random"}, + {"cutoff2_random", "fil2_random"}, + {"gain_random", "amp_random"}, }; for (auto pair : regionSpecific) {