diff --git a/src/sfizz/OpcodeCleanup.cpp b/src/sfizz/OpcodeCleanup.cpp index e14b9017..b42c44e1 100644 --- a/src/sfizz/OpcodeCleanup.cpp +++ b/src/sfizz/OpcodeCleanup.cpp @@ -1,4 +1,4 @@ -/* Generated by re2c 1.3 on Mon May 4 19:13:10 2020 */ +/* Generated by re2c 1.3 on Tue May 5 03:27:40 2020 */ #line 1 "src/sfizz/OpcodeCleanup.re" /* -*- mode: c++; -*- */ // SPDX-License-Identifier: BSD-2-Clause @@ -177,190 +177,132 @@ end_generic: yyt1 = YYCURSOR; goto yy21; case 'b': goto yy22; - case 'e': + case 'c': yyt1 = YYCURSOR; goto yy23; - case 'f': + case 'e': yyt1 = YYCURSOR; goto yy24; - case 'g': + case 'f': yyt1 = YYCURSOR; goto yy25; - case 'l': + case 'g': yyt1 = YYCURSOR; goto yy26; - case 'o': goto yy27; + case 'l': + yyt1 = YYCURSOR; + goto yy27; + case 'o': goto yy28; case 'p': yyt1 = YYCURSOR; - goto yy28; + goto yy29; + case 'r': + yyt1 = YYCURSOR; + goto yy30; case 't': yyt1 = YYCURSOR; - goto yy29; + goto yy31; default: goto yy19; } yy19: ++YYCURSOR; yy20: -#line 141 "src/sfizz/OpcodeCleanup.re" +#line 149 "src/sfizz/OpcodeCleanup.re" { goto end_region; } -#line 209 "src/sfizz/OpcodeCleanup.cpp" +#line 215 "src/sfizz/OpcodeCleanup.cpp" yy21: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'm': goto yy30; + case 'm': goto yy32; default: goto yy20; } yy22: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'e': goto yy32; + case 'e': goto yy34; default: goto yy20; } yy23: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'q': goto yy33; + case 'u': goto yy35; default: goto yy20; } yy24: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'i': goto yy34; + case 'q': goto yy36; default: goto yy20; } yy25: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'a': goto yy35; + case 'i': goto yy37; default: goto yy20; } yy26: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'f': goto yy36; - case 'o': goto yy37; + case 'a': goto yy38; default: goto yy20; } yy27: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'f': goto yy38; - case 'n': goto yy39; + case 'f': goto yy39; + case 'o': goto yy40; default: goto yy20; } yy28: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'i': goto yy40; - case 'o': goto yy41; + case 'f': goto yy41; + case 'n': goto yy42; default: goto yy20; } yy29: yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'u': goto yy42; + case 'i': goto yy43; + case 'o': goto yy44; default: goto yy20; } yy30: - yych = *++YYCURSOR; + yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'p': goto yy43; - default: goto yy31; + case 'e': goto yy45; + default: goto yy20; } yy31: - YYCURSOR = YYMARKER; - goto yy20; + yych = *(YYMARKER = ++YYCURSOR); + switch (yych) { + case 'u': goto yy46; + default: goto yy20; + } yy32: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy44; - default: goto yy31; + case 'p': goto yy47; + default: goto yy33; } yy33: - yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy45; - default: goto yy31; - } + YYCURSOR = YYMARKER; + goto yy20; yy34: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy47; - default: goto yy31; + case 'n': goto yy48; + default: goto yy33; } yy35: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy48; - default: goto yy31; + case 't': goto yy49; + default: goto yy33; } yy36: - yych = *++YYCURSOR; - switch (yych) { - case 'o': goto yy49; - default: goto yy31; - } -yy37: - yych = *++YYCURSOR; - switch (yych) { - case 'o': goto yy50; - default: goto yy31; - } -yy38: - yych = *++YYCURSOR; - switch (yych) { - case 'f': goto yy51; - default: goto yy31; - } -yy39: - yych = *++YYCURSOR; - switch (yych) { - case '_': goto yy52; - default: goto yy31; - } -yy40: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy53; - default: goto yy31; - } -yy41: - yych = *++YYCURSOR; - switch (yych) { - case 'l': goto yy54; - default: goto yy31; - } -yy42: - yych = *++YYCURSOR; - switch (yych) { - case 'n': goto yy55; - default: goto yy31; - } -yy43: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy56; - case 'l': goto yy57; - default: goto yy31; - } -yy44: - yych = *++YYCURSOR; - switch (yych) { - case 'd': goto yy58; - default: goto yy31; - } -yy45: yych = *++YYCURSOR; switch (yych) { case '0': @@ -372,11 +314,105 @@ yy45: case '6': case '7': case '8': - case '9': goto yy45; - case '_': goto yy59; - default: goto yy31; + case '9': goto yy50; + default: goto yy33; + } +yy37: + yych = *++YYCURSOR; + switch (yych) { + case 'l': goto yy52; + default: goto yy33; + } +yy38: + yych = *++YYCURSOR; + switch (yych) { + case 'i': goto yy53; + default: goto yy33; + } +yy39: + yych = *++YYCURSOR; + switch (yych) { + case 'o': goto yy54; + default: goto yy33; + } +yy40: + yych = *++YYCURSOR; + switch (yych) { + case 'o': goto yy55; + default: goto yy33; + } +yy41: + yych = *++YYCURSOR; + switch (yych) { + case 'f': goto yy56; + default: goto yy33; + } +yy42: + yych = *++YYCURSOR; + switch (yych) { + case '_': goto yy57; + default: goto yy33; + } +yy43: + yych = *++YYCURSOR; + switch (yych) { + case 't': goto yy58; + default: goto yy33; + } +yy44: + yych = *++YYCURSOR; + switch (yych) { + case 'l': goto yy59; + default: goto yy33; + } +yy45: + yych = *++YYCURSOR; + switch (yych) { + case 's': goto yy60; + default: goto yy33; + } +yy46: + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy61; + default: goto yy33; } yy47: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy62; + case 'l': goto yy63; + default: goto yy33; + } +yy48: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy64; + default: goto yy33; + } +yy49: + yych = *++YYCURSOR; + switch (yych) { + case 'o': goto yy65; + default: goto yy33; + } +yy50: + yych = *++YYCURSOR; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy50; + case '_': goto yy66; + default: goto yy33; + } +yy52: yych = *++YYCURSOR; switch (yych) { case '0': @@ -390,151 +426,126 @@ yy47: case '8': case '9': yyt1 = YYCURSOR; - goto yy60; - case '_': goto yy62; - case 'e': goto yy56; - case 'l': goto yy57; - case 't': goto yy63; - default: goto yy31; - } -yy48: - yych = *++YYCURSOR; - switch (yych) { - case 'n': goto yy64; - default: goto yy31; - } -yy49: - yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy65; - default: goto yy31; - } -yy50: - yych = *++YYCURSOR; - switch (yych) { - case 'p': goto yy67; - default: goto yy31; - } -yy51: - yych = *++YYCURSOR; - switch (yych) { - case 'b': - yyt1 = YYCURSOR; - goto yy68; - case 'm': - yyt1 = YYCURSOR; - goto yy69; - default: goto yy31; - } -yy52: - yych = *++YYCURSOR; - switch (yych) { - case 'h': goto yy70; - case 'l': goto yy71; - default: goto yy31; + goto yy67; + case '_': goto yy69; + case 'e': goto yy62; + case 'l': goto yy63; + case 't': goto yy70; + default: goto yy33; } yy53: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy72; - default: goto yy31; + case 'n': goto yy71; + default: goto yy33; } yy54: yych = *++YYCURSOR; switch (yych) { - case 'y': goto yy73; - default: goto yy31; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy72; + default: goto yy33; } yy55: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy74; - default: goto yy31; + case 'p': goto yy74; + default: goto yy33; } yy56: yych = *++YYCURSOR; switch (yych) { - case 'g': goto yy75; - default: goto yy31; + case 'b': + yyt1 = YYCURSOR; + goto yy75; + case 'm': + yyt1 = YYCURSOR; + goto yy76; + default: goto yy33; } yy57: yych = *++YYCURSOR; switch (yych) { - case 'f': goto yy76; - default: goto yy31; + case 'h': goto yy77; + case 'l': goto yy78; + default: goto yy33; } yy58: yych = *++YYCURSOR; switch (yych) { - case 'd': - yyt1 = YYCURSOR; - goto yy77; - case 'u': - yyt1 = YYCURSOR; - goto yy78; - default: goto yy31; + case 'c': goto yy79; + default: goto yy33; } yy59: yych = *++YYCURSOR; switch (yych) { - case 'b': - yyt2 = YYCURSOR; - goto yy79; - case 'f': - yyt2 = YYCURSOR; - goto yy80; - case 'g': - yyt2 = YYCURSOR; - goto yy81; - default: goto yy31; + case 'y': goto yy80; + default: goto yy33; } yy60: yych = *++YYCURSOR; switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy60; - case 't': goto yy82; - default: goto yy31; + case 'o': goto yy81; + default: goto yy33; + } +yy61: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy82; + default: goto yy33; } yy62: yych = *++YYCURSOR; - yyt1 = YYCURSOR; - goto yy86; + switch (yych) { + case 'g': goto yy83; + default: goto yy33; + } yy63: yych = *++YYCURSOR; switch (yych) { - case 'y': goto yy87; - default: goto yy31; + case 'f': goto yy84; + default: goto yy33; } yy64: yych = *++YYCURSOR; switch (yych) { - case 0x00: - yyt2 = yyt3 = NULL; - goto yy88; - case '_': - yyt3 = YYCURSOR; - goto yy90; - default: goto yy31; + case 'd': + yyt1 = YYCURSOR; + goto yy85; + case 'u': + yyt1 = YYCURSOR; + goto yy86; + default: goto yy33; } yy65: + yych = *++YYCURSOR; + switch (yych) { + case 'f': goto yy87; + default: goto yy33; + } +yy66: + yych = *++YYCURSOR; + switch (yych) { + case 'b': + yyt2 = YYCURSOR; + goto yy88; + case 'f': + yyt2 = YYCURSOR; + goto yy89; + case 'g': + yyt2 = YYCURSOR; + goto yy90; + default: goto yy33; + } +yy67: yych = *++YYCURSOR; switch (yych) { case '0': @@ -546,144 +557,193 @@ yy65: case '6': case '7': case '8': - case '9': goto yy65; - case '_': goto yy92; - default: goto yy31; - } -yy67: - yych = *++YYCURSOR; - switch (yych) { - case 'e': - yyt1 = YYCURSOR; - goto yy93; - case 'm': - yyt1 = YYCURSOR; - goto yy94; - case 's': - yyt1 = YYCURSOR; - goto yy95; - default: goto yy31; - } -yy68: - yych = *++YYCURSOR; - switch (yych) { - case 'y': goto yy96; - default: goto yy31; + case '9': goto yy67; + case 't': goto yy91; + default: goto yy33; } yy69: yych = *++YYCURSOR; - switch (yych) { - case 'o': goto yy97; - default: goto yy31; - } + yyt1 = YYCURSOR; + goto yy95; yy70: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy98; - default: goto yy31; + case 'y': goto yy96; + default: goto yy33; } yy71: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy98; - default: goto yy31; + case 0x00: + yyt2 = yyt3 = NULL; + goto yy97; + case '_': + yyt3 = YYCURSOR; + goto yy99; + default: goto yy33; } yy72: yych = *++YYCURSOR; switch (yych) { - case 'h': goto yy43; - default: goto yy31; - } -yy73: - yych = *++YYCURSOR; - switch (yych) { - case 'p': goto yy99; - default: goto yy31; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy72; + case '_': goto yy101; + default: goto yy33; } yy74: yych = *++YYCURSOR; switch (yych) { - case 0x00: - yyt2 = yyt3 = NULL; - goto yy100; - case '_': - yyt3 = YYCURSOR; + case 'e': + yyt1 = YYCURSOR; goto yy102; - default: goto yy31; + case 'm': + yyt1 = YYCURSOR; + goto yy103; + case 's': + yyt1 = YYCURSOR; + goto yy104; + default: goto yy33; } yy75: yych = *++YYCURSOR; switch (yych) { - case '_': goto yy104; - default: goto yy31; + case 'y': goto yy105; + default: goto yy33; } yy76: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy105; - default: goto yy31; + case 'o': goto yy106; + default: goto yy33; } yy77: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy106; - default: goto yy31; + case 'i': goto yy107; + default: goto yy33; } yy78: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy107; - default: goto yy31; + case 'o': goto yy107; + default: goto yy33; } yy79: yych = *++YYCURSOR; switch (yych) { - case 'w': goto yy108; - default: goto yy31; + case 'h': goto yy47; + default: goto yy33; } yy80: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy109; - default: goto yy31; + case 'p': goto yy108; + default: goto yy33; } yy81: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy110; - default: goto yy31; + case 'n': goto yy109; + default: goto yy33; } yy82: yych = *++YYCURSOR; switch (yych) { - case 'y': goto yy111; - default: goto yy31; + case 0x00: + yyt2 = yyt3 = NULL; + goto yy110; + case '_': + yyt3 = YYCURSOR; + goto yy112; + default: goto yy33; } yy83: + yych = *++YYCURSOR; + switch (yych) { + case '_': goto yy114; + default: goto yy33; + } +yy84: + yych = *++YYCURSOR; + switch (yych) { + case 'o': goto yy115; + default: goto yy33; + } +yy85: + yych = *++YYCURSOR; + switch (yych) { + case 'o': goto yy116; + default: goto yy33; + } +yy86: + yych = *++YYCURSOR; + switch (yych) { + case 'p': goto yy117; + default: goto yy33; + } +yy87: + yych = *++YYCURSOR; + switch (yych) { + case 'f': goto yy118; + default: goto yy33; + } +yy88: + yych = *++YYCURSOR; + switch (yych) { + case 'w': goto yy119; + default: goto yy33; + } +yy89: + yych = *++YYCURSOR; + switch (yych) { + case 'r': goto yy120; + default: goto yy33; + } +yy90: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy121; + default: goto yy33; + } +yy91: + yych = *++YYCURSOR; + switch (yych) { + case 'y': goto yy122; + default: goto yy33; + } +yy92: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; yypmatch[0] = yyt1 - 4; yypmatch[1] = YYCURSOR; yypmatch[3] = YYCURSOR - 1; -#line 131 "src/sfizz/OpcodeCleanup.re" +#line 136 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("fil1_", group(1)); goto end_region; } -#line 675 "src/sfizz/OpcodeCleanup.cpp" -yy85: +#line 735 "src/sfizz/OpcodeCleanup.cpp" +yy94: yych = *++YYCURSOR; -yy86: - if (yych <= 0x00) goto yy83; - goto yy85; -yy87: +yy95: + if (yych <= 0x00) goto yy92; + goto yy94; +yy96: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy112; - default: goto yy31; + case 'p': goto yy123; + default: goto yy33; } -yy88: +yy97: ++YYCURSOR; yynmatch = 2; yypmatch[0] = yyt1; @@ -695,72 +755,78 @@ yy88: opcode = absl::StrCat("volume", group(1)); goto end_region; } -#line 699 "src/sfizz/OpcodeCleanup.cpp" -yy90: +#line 759 "src/sfizz/OpcodeCleanup.cpp" +yy99: yych = *++YYCURSOR; if (yych <= 0x00) { yyt2 = YYCURSOR; - goto yy88; + goto yy97; } - goto yy90; -yy92: + goto yy99; +yy101: yych = *++YYCURSOR; switch (yych) { case 'o': yyt2 = YYCURSOR; - goto yy113; + goto yy124; case 'r': yyt2 = YYCURSOR; - goto yy114; + goto yy125; case 's': yyt2 = YYCURSOR; - goto yy115; + goto yy126; case 'w': yyt2 = YYCURSOR; - goto yy116; - default: goto yy31; + goto yy127; + default: goto yy33; } -yy93: +yy102: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy117; - default: goto yy31; + case 'n': goto yy128; + default: goto yy33; } -yy94: +yy103: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy118; - default: goto yy31; + case 'o': goto yy129; + default: goto yy33; } -yy95: +yy104: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy119; - default: goto yy31; + case 't': goto yy130; + default: goto yy33; } -yy96: +yy105: yych = *++YYCURSOR; - if (yych <= 0x00) goto yy120; - goto yy31; -yy97: + if (yych <= 0x00) goto yy131; + goto yy33; +yy106: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy122; - default: goto yy31; + case 'd': goto yy133; + default: goto yy33; } -yy98: +yy107: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy123; - default: goto yy31; + case 'c': goto yy134; + default: goto yy33; } -yy99: +yy108: yych = *++YYCURSOR; switch (yych) { - case 'h': goto yy124; - default: goto yy31; + case 'h': goto yy135; + default: goto yy33; } -yy100: +yy109: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy136; + default: goto yy33; + } +yy110: ++YYCURSOR; yynmatch = 2; yypmatch[0] = yyt1; @@ -772,123 +838,134 @@ yy100: opcode = absl::StrCat("pitch", group(1)); goto end_region; } -#line 776 "src/sfizz/OpcodeCleanup.cpp" -yy102: +#line 842 "src/sfizz/OpcodeCleanup.cpp" +yy112: yych = *++YYCURSOR; if (yych <= 0x00) { yyt2 = YYCURSOR; - goto yy100; + goto yy110; } - goto yy102; -yy104: + goto yy112; +yy114: yych = *++YYCURSOR; switch (yych) { case 'a': yyt2 = YYCURSOR; - goto yy125; + goto yy137; case 'd': yyt2 = YYCURSOR; - goto yy126; + goto yy138; case 'h': yyt2 = YYCURSOR; - goto yy127; + goto yy139; case 'r': yyt2 = YYCURSOR; - goto yy128; + goto yy140; case 's': yyt2 = YYCURSOR; - goto yy129; - default: goto yy31; - } -yy105: - yych = *++YYCURSOR; - switch (yych) { - case '_': goto yy130; - default: goto yy31; - } -yy106: - yych = *++YYCURSOR; - switch (yych) { - case 'w': goto yy131; - default: goto yy31; - } -yy107: - yych = *++YYCURSOR; - if (yych <= 0x00) goto yy132; - goto yy31; -yy108: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy134; - default: goto yy31; - } -yy109: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy135; - default: goto yy31; - } -yy110: - yych = *++YYCURSOR; - switch (yych) { - case 'i': goto yy136; - default: goto yy31; - } -yy111: - yych = *++YYCURSOR; - switch (yych) { - case 'p': goto yy137; - default: goto yy31; - } -yy112: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy138; - default: goto yy31; - } -yy113: - yych = *++YYCURSOR; - switch (yych) { - case 'f': goto yy139; - default: goto yy31; - } -yy114: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy140; - default: goto yy31; + goto yy141; + default: goto yy33; } yy115: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy141; - default: goto yy31; + case '_': goto yy142; + default: goto yy33; } yy116: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy142; - default: goto yy31; + case 'w': goto yy143; + default: goto yy33; } yy117: yych = *++YYCURSOR; - switch (yych) { - case 'd': goto yy143; - default: goto yy31; - } + if (yych <= 0x00) goto yy144; + goto yy33; yy118: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy144; - default: goto yy31; + case 0x00: + yyt2 = yyt3 = NULL; + goto yy146; + case '_': + yyt3 = YYCURSOR; + goto yy148; + default: goto yy33; } yy119: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy145; - default: goto yy31; + case 'c': goto yy150; + default: goto yy33; } yy120: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy151; + default: goto yy33; + } +yy121: + yych = *++YYCURSOR; + switch (yych) { + case 'i': goto yy152; + default: goto yy33; + } +yy122: + yych = *++YYCURSOR; + switch (yych) { + case 'p': goto yy153; + default: goto yy33; + } +yy123: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy154; + default: goto yy33; + } +yy124: + yych = *++YYCURSOR; + switch (yych) { + case 'f': goto yy155; + default: goto yy33; + } +yy125: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy156; + default: goto yy33; + } +yy126: + yych = *++YYCURSOR; + switch (yych) { + case 'c': goto yy157; + default: goto yy33; + } +yy127: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy158; + default: goto yy33; + } +yy128: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy159; + default: goto yy33; + } +yy129: + yych = *++YYCURSOR; + switch (yych) { + case 'd': goto yy160; + default: goto yy33; + } +yy130: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy161; + default: goto yy33; + } +yy131: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; @@ -900,74 +977,80 @@ yy120: opcode = absl::StrCat("off_", group(1)); goto end_region; } -#line 904 "src/sfizz/OpcodeCleanup.cpp" -yy122: +#line 981 "src/sfizz/OpcodeCleanup.cpp" +yy133: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy96; - default: goto yy31; + case 'e': goto yy105; + default: goto yy33; } -yy123: +yy134: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy146; - default: goto yy31; + case 'c': goto yy162; + default: goto yy33; } -yy124: +yy135: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy147; - default: goto yy31; + case 'o': goto yy163; + default: goto yy33; } -yy125: +yy136: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy148; - default: goto yy31; + case 'n': goto yy164; + default: goto yy33; } -yy126: +yy137: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy149; - default: goto yy31; + case 't': goto yy165; + default: goto yy33; } -yy127: +yy138: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy150; - default: goto yy31; + case 'e': goto yy166; + default: goto yy33; } -yy128: +yy139: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy151; - default: goto yy31; + case 'o': goto yy167; + default: goto yy33; } -yy129: +yy140: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy152; - case 'u': goto yy153; - default: goto yy31; + case 'e': goto yy168; + default: goto yy33; } -yy130: +yy141: + yych = *++YYCURSOR; + switch (yych) { + case 't': goto yy169; + case 'u': goto yy170; + default: goto yy33; + } +yy142: yych = *++YYCURSOR; switch (yych) { case 'd': yyt2 = YYCURSOR; - goto yy154; + goto yy171; case 'f': yyt2 = YYCURSOR; - goto yy155; - default: goto yy31; + goto yy172; + default: goto yy33; } -yy131: +yy143: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy107; - default: goto yy31; + case 'n': goto yy117; + default: goto yy33; } -yy132: +yy144: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; @@ -979,76 +1062,96 @@ yy132: opcode = absl::StrCat("bend_", group(1)); goto end_region; } -#line 983 "src/sfizz/OpcodeCleanup.cpp" -yy134: - yych = *++YYCURSOR; - switch (yych) { - case 'c': goto yy156; - default: goto yy31; - } -yy135: - yych = *++YYCURSOR; - switch (yych) { - case 'q': goto yy108; - default: goto yy31; - } -yy136: - yych = *++YYCURSOR; - switch (yych) { - case 'n': goto yy108; - default: goto yy31; - } -yy137: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy157; - default: goto yy31; - } -yy138: - yych = *++YYCURSOR; - if (yych <= 0x00) goto yy158; - goto yy31; -yy139: - yych = *++YYCURSOR; - switch (yych) { - case 'f': goto yy160; - default: goto yy31; - } -yy140: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy161; - default: goto yy31; - } -yy141: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy162; - default: goto yy31; - } -yy142: - yych = *++YYCURSOR; - switch (yych) { - case 'v': goto yy163; - default: goto yy31; - } -yy143: - yych = *++YYCURSOR; - if (yych <= 0x00) goto yy164; - goto yy31; -yy144: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy143; - default: goto yy31; - } -yy145: - yych = *++YYCURSOR; - switch (yych) { - case 'r': goto yy166; - default: goto yy31; - } +#line 1066 "src/sfizz/OpcodeCleanup.cpp" yy146: + ++YYCURSOR; + yynmatch = 2; + yypmatch[0] = yyt1; + yypmatch[2] = yyt3; + yypmatch[3] = yyt2; + yypmatch[1] = YYCURSOR; +#line 140 "src/sfizz/OpcodeCleanup.re" + { + opcode = absl::StrCat("cutoff1", group(1)); + goto end_region; + } +#line 1079 "src/sfizz/OpcodeCleanup.cpp" +yy148: + yych = *++YYCURSOR; + if (yych <= 0x00) { + yyt2 = YYCURSOR; + goto yy146; + } + goto yy148; +yy150: + yych = *++YYCURSOR; + switch (yych) { + case 'c': goto yy173; + default: goto yy33; + } +yy151: + yych = *++YYCURSOR; + switch (yych) { + case 'q': goto yy119; + default: goto yy33; + } +yy152: + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy119; + default: goto yy33; + } +yy153: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy174; + default: goto yy33; + } +yy154: + yych = *++YYCURSOR; + if (yych <= 0x00) goto yy175; + goto yy33; +yy155: + yych = *++YYCURSOR; + switch (yych) { + case 'f': goto yy177; + default: goto yy33; + } +yy156: + yych = *++YYCURSOR; + switch (yych) { + case 't': goto yy178; + default: goto yy33; + } +yy157: + yych = *++YYCURSOR; + switch (yych) { + case 'a': goto yy179; + default: goto yy33; + } +yy158: + yych = *++YYCURSOR; + switch (yych) { + case 'v': goto yy180; + default: goto yy33; + } +yy159: + yych = *++YYCURSOR; + if (yych <= 0x00) goto yy181; + goto yy33; +yy160: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy159; + default: goto yy33; + } +yy161: + yych = *++YYCURSOR; + switch (yych) { + case 'r': goto yy183; + default: goto yy33; + } +yy162: yych = *++YYCURSOR; switch (yych) { case '0': @@ -1062,66 +1165,72 @@ yy146: case '8': case '9': yyt1 = YYCURSOR; - goto yy167; - default: goto yy31; + goto yy184; + default: goto yy33; } -yy147: +yy163: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy169; - default: goto yy31; + case 'n': goto yy186; + default: goto yy33; } -yy148: +yy164: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy170; - default: goto yy31; + case 'c': goto yy187; + default: goto yy33; } -yy149: +yy165: + yych = *++YYCURSOR; + switch (yych) { + case 't': goto yy188; + default: goto yy33; + } +yy166: yych = *++YYCURSOR; switch (yych) { case 'c': - case 'l': goto yy171; - default: goto yy31; + case 'l': goto yy189; + default: goto yy33; } -yy150: +yy167: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy172; - default: goto yy31; + case 'l': goto yy190; + default: goto yy33; } -yy151: +yy168: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy173; - default: goto yy31; + case 'l': goto yy191; + default: goto yy33; } -yy152: +yy169: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy174; - default: goto yy31; + case 'a': goto yy192; + default: goto yy33; } -yy153: +yy170: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy175; - default: goto yy31; + case 's': goto yy193; + default: goto yy33; } -yy154: +yy171: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy176; - default: goto yy31; + case 'e': goto yy194; + default: goto yy33; } -yy155: +yy172: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy177; - case 'r': goto yy178; - default: goto yy31; + case 'a': goto yy195; + case 'r': goto yy196; + default: goto yy33; } -yy156: +yy173: yych = *++YYCURSOR; switch (yych) { case '0': @@ -1135,14 +1244,14 @@ yy156: case '8': case '9': yyt3 = YYCURSOR; - goto yy179; - default: goto yy31; + goto yy197; + default: goto yy33; } -yy157: +yy174: yych = *++YYCURSOR; - if (yych <= 0x00) goto yy181; - goto yy31; -yy158: + if (yych <= 0x00) goto yy199; + goto yy33; +yy175: ++YYCURSOR; yynmatch = 1; yypmatch[0] = YYCURSOR - 8; @@ -1152,32 +1261,32 @@ yy158: opcode = absl::StrCat("fil1_type"); goto end_region; } -#line 1156 "src/sfizz/OpcodeCleanup.cpp" -yy160: +#line 1265 "src/sfizz/OpcodeCleanup.cpp" +yy177: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy183; - default: goto yy31; + case 's': goto yy201; + default: goto yy33; } -yy161: +yy178: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy184; - default: goto yy31; + case 'i': goto yy202; + default: goto yy33; } -yy162: +yy179: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy163; - default: goto yy31; + case 'l': goto yy180; + default: goto yy33; } -yy163: +yy180: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy185; - default: goto yy31; + case 'e': goto yy203; + default: goto yy33; } -yy164: +yy181: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; @@ -1189,17 +1298,17 @@ yy164: opcode = absl::StrCat("loop_", group(1)); goto end_region; } -#line 1193 "src/sfizz/OpcodeCleanup.cpp" -yy166: +#line 1302 "src/sfizz/OpcodeCleanup.cpp" +yy183: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy143; - default: goto yy31; + case 't': goto yy159; + default: goto yy33; } -yy167: +yy184: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy186; + case 0x00: goto yy204; case '0': case '1': case '2': @@ -1209,73 +1318,79 @@ yy167: case '6': case '7': case '8': - case '9': goto yy167; - default: goto yy31; + case '9': goto yy184; + default: goto yy33; } -yy169: +yy186: yych = *++YYCURSOR; switch (yych) { - case 'y': goto yy188; - default: goto yy31; + case 'y': goto yy206; + default: goto yy33; } -yy170: +yy187: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy189; - default: goto yy31; + case 'e': goto yy207; + default: goto yy33; } -yy171: +yy188: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy190; - default: goto yy31; + case 'a': goto yy208; + default: goto yy33; } -yy172: +yy189: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy191; - default: goto yy31; + case 'a': goto yy209; + default: goto yy33; } -yy173: +yy190: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy192; - default: goto yy31; + case 'd': goto yy210; + default: goto yy33; } -yy174: +yy191: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy193; - default: goto yy31; + case 'e': goto yy211; + default: goto yy33; } -yy175: +yy192: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy194; - default: goto yy31; + case 'r': goto yy212; + default: goto yy33; } -yy176: +yy193: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy195; - default: goto yy31; + case 't': goto yy213; + default: goto yy33; } -yy177: +yy194: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy196; - default: goto yy31; + case 'p': goto yy214; + default: goto yy33; } -yy178: +yy195: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy197; - default: goto yy31; + case 'd': goto yy215; + default: goto yy33; } -yy179: +yy196: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy198; + case 'e': goto yy216; + default: goto yy33; + } +yy197: + yych = *++YYCURSOR; + switch (yych) { + case 0x00: goto yy217; case '0': case '1': case '2': @@ -1285,10 +1400,10 @@ yy179: case '6': case '7': case '8': - case '9': goto yy179; - default: goto yy31; + case '9': goto yy197; + default: goto yy33; } -yy181: +yy199: ++YYCURSOR; yynmatch = 2; yypmatch[2] = yyt1; @@ -1300,24 +1415,24 @@ yy181: opcode = absl::StrCat("fil", group(1), "_type"); goto end_region; } -#line 1304 "src/sfizz/OpcodeCleanup.cpp" -yy183: +#line 1419 "src/sfizz/OpcodeCleanup.cpp" +yy201: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy200; - default: goto yy31; + case 'e': goto yy219; + default: goto yy33; } -yy184: +yy202: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy185; - default: goto yy31; + case 'o': goto yy203; + default: goto yy33; } -yy185: +yy203: yych = *++YYCURSOR; - if (yych <= 0x00) goto yy201; - goto yy31; -yy186: + if (yych <= 0x00) goto yy220; + goto yy33; +yy204: ++YYCURSOR; yynmatch = 3; yypmatch[4] = yyt1; @@ -1326,73 +1441,84 @@ yy186: yypmatch[2] = yyt1 - 4; yypmatch[3] = yyt1 - 2; yypmatch[5] = YYCURSOR - 1; -#line 136 "src/sfizz/OpcodeCleanup.re" +#line 131 "src/sfizz/OpcodeCleanup.re" { opcode = absl::StrCat("start_", group(1), "cc", group(2)); goto end_region; } -#line 1335 "src/sfizz/OpcodeCleanup.cpp" -yy188: +#line 1450 "src/sfizz/OpcodeCleanup.cpp" +yy206: yych = *++YYCURSOR; switch (yych) { - case '_': goto yy203; - default: goto yy31; + case '_': goto yy222; + default: goto yy33; } -yy189: +yy207: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy204; - default: goto yy31; + case 0x00: + yyt2 = yyt3 = NULL; + goto yy223; + case '_': + yyt3 = YYCURSOR; + goto yy225; + default: goto yy33; } -yy190: +yy208: yych = *++YYCURSOR; switch (yych) { - case 'y': goto yy191; - default: goto yy31; + case 'c': goto yy227; + default: goto yy33; } -yy191: +yy209: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy205; - default: goto yy31; + case 'y': goto yy210; + default: goto yy33; } -yy192: +yy210: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy206; - default: goto yy31; + case 'c': goto yy228; + default: goto yy33; } -yy193: +yy211: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy191; - default: goto yy31; + case 'a': goto yy229; + default: goto yy33; } -yy194: +yy212: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy207; - default: goto yy31; + case 't': goto yy210; + default: goto yy33; } -yy195: +yy213: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy208; - default: goto yy31; + case 'a': goto yy230; + default: goto yy33; } -yy196: +yy214: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy209; - default: goto yy31; + case 't': goto yy231; + default: goto yy33; } -yy197: +yy215: yych = *++YYCURSOR; switch (yych) { - case 'q': goto yy209; - default: goto yy31; + case 'e': goto yy232; + default: goto yy33; } -yy198: +yy216: + yych = *++YYCURSOR; + switch (yych) { + case 'q': goto yy232; + default: goto yy33; + } +yy217: ++YYCURSOR; yynmatch = 4; yypmatch[2] = yyt1; @@ -1408,14 +1534,14 @@ yy198: opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3)); goto end_region; } -#line 1412 "src/sfizz/OpcodeCleanup.cpp" -yy200: +#line 1538 "src/sfizz/OpcodeCleanup.cpp" +yy219: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy185; - default: goto yy31; + case 't': goto yy203; + default: goto yy33; } -yy201: +yy220: ++YYCURSOR; yynmatch = 3; yypmatch[2] = yyt1; @@ -1429,56 +1555,76 @@ yy201: opcode = absl::StrCat(group(1), "_", group(2), "1"); goto end_region; } -#line 1433 "src/sfizz/OpcodeCleanup.cpp" -yy203: +#line 1559 "src/sfizz/OpcodeCleanup.cpp" +yy222: yych = *++YYCURSOR; switch (yych) { - case 'g': goto yy210; - default: goto yy31; + case 'g': goto yy233; + default: goto yy33; } -yy204: +yy223: + ++YYCURSOR; + yynmatch = 2; + yypmatch[0] = yyt1; + yypmatch[2] = yyt3; + yypmatch[3] = yyt2; + yypmatch[1] = YYCURSOR; +#line 144 "src/sfizz/OpcodeCleanup.re" + { + opcode = absl::StrCat("resonance1", group(1)); + goto end_region; + } +#line 1578 "src/sfizz/OpcodeCleanup.cpp" +yy225: + yych = *++YYCURSOR; + if (yych <= 0x00) { + yyt2 = YYCURSOR; + goto yy223; + } + goto yy225; +yy227: yych = *++YYCURSOR; switch (yych) { - case 'k': goto yy191; - default: goto yy31; + case 'k': goto yy210; + default: goto yy33; } -yy205: +yy228: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy211; - default: goto yy31; + case 'c': goto yy234; + default: goto yy33; } -yy206: +yy229: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy212; - default: goto yy31; + case 's': goto yy235; + default: goto yy33; } -yy207: +yy230: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy213; - default: goto yy31; + case 'i': goto yy236; + default: goto yy33; } -yy208: +yy231: yych = *++YYCURSOR; switch (yych) { - case 'h': goto yy209; - default: goto yy31; + case 'h': goto yy232; + default: goto yy33; } -yy209: +yy232: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy214; - default: goto yy31; + case 'c': goto yy237; + default: goto yy33; } -yy210: +yy233: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy215; - default: goto yy31; + case 'r': goto yy238; + default: goto yy33; } -yy211: +yy234: yych = *++YYCURSOR; switch (yych) { case '0': @@ -1492,37 +1638,37 @@ yy211: case '8': case '9': yyt3 = YYCURSOR; - goto yy216; - default: goto yy31; + goto yy239; + default: goto yy33; } -yy212: +yy235: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy191; - default: goto yy31; + case 'e': goto yy210; + default: goto yy33; } -yy213: +yy236: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy191; - default: goto yy31; + case 'n': goto yy210; + default: goto yy33; } -yy214: +yy237: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy218; - default: goto yy31; + case 'c': goto yy241; + default: goto yy33; } -yy215: +yy238: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy219; - default: goto yy31; + case 'o': goto yy242; + default: goto yy33; } -yy216: +yy239: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy220; + case 0x00: goto yy243; case '0': case '1': case '2': @@ -1532,10 +1678,10 @@ yy216: case '6': case '7': case '8': - case '9': goto yy216; - default: goto yy31; + case '9': goto yy239; + default: goto yy33; } -yy218: +yy241: yych = *++YYCURSOR; switch (yych) { case '0': @@ -1549,16 +1695,16 @@ yy218: case '8': case '9': yyt3 = YYCURSOR; - goto yy222; - default: goto yy31; + goto yy245; + default: goto yy33; } -yy219: +yy242: yych = *++YYCURSOR; switch (yych) { - case 'u': goto yy224; - default: goto yy31; + case 'u': goto yy247; + default: goto yy33; } -yy220: +yy243: ++YYCURSOR; yynmatch = 4; yypmatch[2] = yyt1; @@ -1574,11 +1720,11 @@ yy220: opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3)); goto end_region; } -#line 1578 "src/sfizz/OpcodeCleanup.cpp" -yy222: +#line 1724 "src/sfizz/OpcodeCleanup.cpp" +yy245: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy225; + case 0x00: goto yy248; case '0': case '1': case '2': @@ -1588,16 +1734,16 @@ yy222: case '6': case '7': case '8': - case '9': goto yy222; - default: goto yy31; + case '9': goto yy245; + default: goto yy33; } -yy224: +yy247: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy227; - default: goto yy31; + case 'p': goto yy250; + default: goto yy33; } -yy225: +yy248: ++YYCURSOR; yynmatch = 4; yypmatch[2] = yyt1; @@ -1613,10 +1759,10 @@ yy225: opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3)); goto end_region; } -#line 1617 "src/sfizz/OpcodeCleanup.cpp" -yy227: +#line 1763 "src/sfizz/OpcodeCleanup.cpp" +yy250: yych = *++YYCURSOR; - if (yych >= 0x01) goto yy31; + if (yych >= 0x01) goto yy33; ++YYCURSOR; yynmatch = 1; yypmatch[0] = YYCURSOR - 16; @@ -1626,9 +1772,9 @@ yy227: opcode = "group"; goto end_region; } -#line 1630 "src/sfizz/OpcodeCleanup.cpp" +#line 1776 "src/sfizz/OpcodeCleanup.cpp" } -#line 145 "src/sfizz/OpcodeCleanup.re" +#line 153 "src/sfizz/OpcodeCleanup.re" end_region: diff --git a/src/sfizz/OpcodeCleanup.re b/src/sfizz/OpcodeCleanup.re index fec5f89b..73ca1f4a 100644 --- a/src/sfizz/OpcodeCleanup.re +++ b/src/sfizz/OpcodeCleanup.re @@ -128,16 +128,24 @@ end_generic: goto end_region; } - "fil_" (any) END { - opcode = absl::StrCat("fil1_", group(1)); - goto end_region; - } - "on_" ("hi"|"lo") "cc" (number) END { opcode = absl::StrCat("start_", group(1), "cc", group(2)); goto end_region; } + "fil_" (any) END { + opcode = absl::StrCat("fil1_", group(1)); + goto end_region; + } + "cutoff" ("_" any)? END { + opcode = absl::StrCat("cutoff1", group(1)); + goto end_region; + } + "resonance" ("_" any)? END { + opcode = absl::StrCat("resonance1", group(1)); + goto end_region; + } + * { goto end_region; } diff --git a/tests/OpcodeT.cpp b/tests/OpcodeT.cpp index d4f7959e..733a185c 100644 --- a/tests/OpcodeT.cpp +++ b/tests/OpcodeT.cpp @@ -205,6 +205,12 @@ TEST_CASE("[Opcode] Normalization") // SFZv2 aliases {"on_hicc22", "start_hicc22"}, {"on_locc23", "start_locc23"}, + // Filter SFZv1 + {"fil_foobar", "fil1_foobar"}, + {"cutoff", "cutoff1"}, + {"cutoff_foobar", "cutoff1_foobar"}, + {"resonance", "resonance1"}, + {"resonance_foobar", "resonance1_foobar"}, }; for (auto pair : regionSpecific) {