/* Generated by re2c 2.0.3 on Sat Dec 12 13:32:03 2020 */
#line 1 "src/sfizz/OpcodeCleanup.re"
/* -*- mode: c++; -*- */
// SPDX-License-Identifier: BSD-2-Clause

// This code is part of the sfizz library and is licensed under a BSD 2-clause
// license. You should have receive a LICENSE.md file along with the code.
// If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz

#include "Opcode.h"
#include "utility/Macros.h"
#include <absl/strings/string_view.h>
#include <absl/strings/str_cat.h>
#include <absl/strings/ascii.h>
#include <string>

namespace sfz {

static std::string cleanUpOpcodeName(absl::string_view rawOpcode, OpcodeScope scope)
{
    std::string opcode { rawOpcode };

    // always convert it to lower case
    absl::AsciiStrToLower(&opcode);

    #line 28 "src/sfizz/OpcodeCleanup.re"

    #define YYMAXNMATCH 4


    const char* YYCURSOR;
    const char* YYMARKER;
    const char* yypmatch[2 * YYMAXNMATCH];
    size_t yynmatch;
    UNUSED(yynmatch);

    const char* yyt1; const char* yyt2; const char* yyt3; const char* yyt4; const char* yyt5; 

    auto group = [&yypmatch](size_t i) -> absl::string_view {
        const char *beg = yypmatch[2 * i];
        const char *end = yypmatch[2 * i + 1];
        return absl::string_view(beg, end - beg);
    };

    #line 50 "src/sfizz/OpcodeCleanup.re"


    //--------------------------------------------------------------------------

    if (scope == kOpcodeScopeRegion) {

    YYCURSOR = opcode.c_str();

    
#line 56 "src/sfizz/OpcodeCleanup.cpp"
{
	char yych;
	yych = *YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy2;
	case '_':
		yyt1 = YYCURSOR;
		goto yy5;
	default:
		yyt1 = YYCURSOR;
		goto yy4;
	}
yy2:
	++YYCURSOR;
yy3:
#line 65 "src/sfizz/OpcodeCleanup.re"
	{
        goto end_region_oncc;
    }
#line 76 "src/sfizz/OpcodeCleanup.cpp"
yy4:
	yych = *(YYMARKER = ++YYCURSOR);
	if (yych <= 0x00) goto yy3;
	goto yy7;
yy5:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 0x00:	goto yy3;
	case 'c':	goto yy11;
	default:	goto yy7;
	}
yy6:
	yych = *++YYCURSOR;
yy7:
	switch (yych) {
	case 0x00:	goto yy8;
	case '_':	goto yy9;
	default:	goto yy6;
	}
yy8:
	YYCURSOR = YYMARKER;
	goto yy3;
yy9:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy8;
	case '_':	goto yy9;
	case 'c':	goto yy11;
	default:	goto yy6;
	}
yy11:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy8;
	case '_':	goto yy9;
	case 'c':	goto yy12;
	default:	goto yy6;
	}
yy12:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy8;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt2 = YYCURSOR;
		goto yy13;
	case '_':	goto yy9;
	default:	goto yy6;
	}
yy13:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy15;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy13;
	case '_':	goto yy9;
	default:	goto yy6;
	}
yy15:
	++YYCURSOR;
	yynmatch = 3;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 3;
	yypmatch[5] = YYCURSOR - 1;
#line 60 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_oncc", group(2));
        goto end_region_oncc;
    }
#line 165 "src/sfizz/OpcodeCleanup.cpp"
}
#line 69 "src/sfizz/OpcodeCleanup.re"


end_region_oncc:
    /* end */;

    } // scope == kOpcodeScopeRegion

    //--------------------------------------------------------------------------

    if (scope == kOpcodeScopeRegion) {
    again_region:

    YYCURSOR = opcode.c_str();

    
#line 183 "src/sfizz/OpcodeCleanup.cpp"
{
	char yych;
	yych = *YYCURSOR;
	switch (yych) {
	case 'a':
		yyt1 = YYCURSOR;
		goto yy21;
	case 'b':	goto yy22;
	case 'c':
		yyt1 = YYCURSOR;
		goto yy23;
	case 'e':
		yyt1 = YYCURSOR;
		goto yy24;
	case 'f':
		yyt1 = YYCURSOR;
		goto yy25;
	case 'g':
		yyt1 = YYCURSOR;
		goto yy26;
	case 'h':	goto yy27;
	case 'l':
		yyt1 = YYCURSOR;
		goto yy28;
	case 'o':	goto yy29;
	case 'p':
		yyt1 = YYCURSOR;
		goto yy30;
	case 'r':
		yyt1 = YYCURSOR;
		goto yy31;
	case 't':
		yyt1 = YYCURSOR;
		goto yy32;
	default:	goto yy19;
	}
yy19:
	++YYCURSOR;
yy20:
#line 195 "src/sfizz/OpcodeCleanup.re"
	{
        goto end_region;
    }
#line 227 "src/sfizz/OpcodeCleanup.cpp"
yy21:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'm':	goto yy33;
	default:	goto yy20;
	}
yy22:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'e':	goto yy35;
	default:	goto yy20;
	}
yy23:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'u':	goto yy36;
	default:	goto yy20;
	}
yy24:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'g':	goto yy37;
	case 'q':	goto yy38;
	default:	goto yy20;
	}
yy25:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'i':	goto yy39;
	default:	goto yy20;
	}
yy26:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'a':	goto yy40;
	default:	goto yy20;
	}
yy27:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'i':	goto yy41;
	default:	goto yy20;
	}
yy28:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'f':	goto yy42;
	case 'o':	goto yy43;
	default:	goto yy20;
	}
yy29:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'f':	goto yy44;
	case 'n':	goto yy45;
	default:	goto yy20;
	}
yy30:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'i':	goto yy46;
	case 'o':	goto yy47;
	default:	goto yy20;
	}
yy31:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'e':	goto yy48;
	default:	goto yy20;
	}
yy32:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'u':	goto yy49;
	default:	goto yy20;
	}
yy33:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy50;
	default:	goto yy34;
	}
yy34:
	YYCURSOR = YYMARKER;
	goto yy20;
yy35:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy51;
	default:	goto yy34;
	}
yy36:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy52;
	default:	goto yy34;
	}
yy37:
	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 yy53;
	default:	goto yy34;
	}
yy38:
	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 yy55;
	default:	goto yy34;
	}
yy39:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy57;
	default:	goto yy34;
	}
yy40:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy58;
	default:	goto yy34;
	}
yy41:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy59;
	default:	goto yy34;
	}
yy42:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy60;
	default:	goto yy34;
	}
yy43:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy61;
	case 'r':	goto yy59;
	default:	goto yy34;
	}
yy44:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy62;
	default:	goto yy34;
	}
yy45:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy63;
	default:	goto yy34;
	}
yy46:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy64;
	default:	goto yy34;
	}
yy47:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy65;
	default:	goto yy34;
	}
yy48:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy66;
	default:	goto yy34;
	}
yy49:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy67;
	default:	goto yy34;
	}
yy50:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy68;
	case 'l':	goto yy69;
	default:	goto yy34;
	}
yy51:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy70;
	default:	goto yy34;
	}
yy52:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy71;
	default:	goto yy34;
	}
yy53:
	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 yy53;
	case '_':	goto yy72;
	default:	goto yy34;
	}
yy55:
	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 yy55;
	case '_':	goto yy73;
	default:	goto yy34;
	}
yy57:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt1 = YYCURSOR;
		goto yy74;
	case '_':	goto yy76;
	case 'e':	goto yy68;
	case 'l':	goto yy69;
	case 't':	goto yy77;
	default:	goto yy34;
	}
yy58:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy78;
	default:	goto yy34;
	}
yy59:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy79;
	default:	goto yy34;
	}
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 yy80;
	default:	goto yy34;
	}
yy61:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy82;
	default:	goto yy34;
	}
yy62:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'b':
		yyt1 = YYCURSOR;
		goto yy83;
	case 'm':
		yyt1 = YYCURSOR;
		goto yy84;
	default:	goto yy34;
	}
yy63:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'h':	goto yy85;
	case 'l':	goto yy86;
	default:	goto yy34;
	}
yy64:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy87;
	default:	goto yy34;
	}
yy65:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy88;
	default:	goto yy34;
	}
yy66:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy89;
	default:	goto yy34;
	}
yy67:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy90;
	default:	goto yy34;
	}
yy68:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'g':	goto yy91;
	default:	goto yy34;
	}
yy69:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy92;
	default:	goto yy34;
	}
yy70:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':
		yyt1 = YYCURSOR;
		goto yy93;
	case 's':
		yyt1 = YYCURSOR;
		goto yy94;
	case 'u':
		yyt1 = YYCURSOR;
		goto yy95;
	default:	goto yy34;
	}
yy71:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy96;
	default:	goto yy34;
	}
yy72:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':
		yyt2 = YYCURSOR;
		goto yy97;
	case 'r':
		yyt2 = YYCURSOR;
		goto yy98;
	default:	goto yy34;
	}
yy73:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'b':
		yyt2 = YYCURSOR;
		goto yy99;
	case 'f':
		yyt2 = YYCURSOR;
		goto yy100;
	case 'g':
		yyt2 = YYCURSOR;
		goto yy101;
	case 'v':	goto yy102;
	default:	goto yy34;
	}
yy74:
	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 yy74;
	case 't':	goto yy103;
	default:	goto yy34;
	}
yy76:
	yych = *++YYCURSOR;
	yyt1 = YYCURSOR;
	goto yy107;
yy77:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy108;
	default:	goto yy34;
	}
yy78:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt2 = yyt3 = NULL;
		goto yy109;
	case '_':
		yyt3 = YYCURSOR;
		goto yy111;
	default:	goto yy34;
	}
yy79:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy112;
	default:	goto yy34;
	}
yy80:
	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 yy80;
	case '_':	goto yy113;
	default:	goto yy34;
	}
yy82:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':
		yyt1 = YYCURSOR;
		goto yy114;
	case 'm':
		yyt1 = YYCURSOR;
		goto yy115;
	case 's':
		yyt1 = YYCURSOR;
		goto yy116;
	default:	goto yy34;
	}
yy83:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy117;
	default:	goto yy34;
	}
yy84:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy118;
	default:	goto yy34;
	}
yy85:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy119;
	default:	goto yy34;
	}
yy86:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy119;
	default:	goto yy34;
	}
yy87:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'h':	goto yy50;
	default:	goto yy34;
	}
yy88:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy120;
	default:	goto yy34;
	}
yy89:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy121;
	default:	goto yy34;
	}
yy90:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt2 = yyt3 = NULL;
		goto yy122;
	case '_':
		yyt3 = YYCURSOR;
		goto yy124;
	default:	goto yy34;
	}
yy91:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy126;
	default:	goto yy34;
	}
yy92:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy127;
	default:	goto yy34;
	}
yy93:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy128;
	default:	goto yy34;
	}
yy94:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy129;
	default:	goto yy34;
	}
yy95:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy130;
	default:	goto yy34;
	}
yy96:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy131;
	default:	goto yy34;
	}
yy97:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'u':	goto yy132;
	default:	goto yy34;
	}
yy98:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy133;
	default:	goto yy34;
	}
yy99:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'w':	goto yy134;
	default:	goto yy34;
	}
yy100:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy135;
	default:	goto yy34;
	}
yy101:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy136;
	default:	goto yy34;
	}
yy102:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy137;
	default:	goto yy34;
	}
yy103:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy138;
	default:	goto yy34;
	}
yy104:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 4;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 177 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("fil1_", group(1));
        goto end_region;
    }
#line 843 "src/sfizz/OpcodeCleanup.cpp"
yy106:
	yych = *++YYCURSOR;
yy107:
	if (yych <= 0x00) goto yy104;
	goto yy106;
yy108:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy139;
	default:	goto yy34;
	}
yy109:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt3;
	yypmatch[3] = yyt2;
	yypmatch[1] = YYCURSOR;
#line 154 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("volume", group(1));
        goto end_region;
    }
#line 867 "src/sfizz/OpcodeCleanup.cpp"
yy111:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy142;
	default:	goto yy141;
	}
yy112:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy143;
	default:	goto yy34;
	}
yy113:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':
		yyt2 = YYCURSOR;
		goto yy144;
	case 'o':
		yyt2 = YYCURSOR;
		goto yy145;
	case 'r':
		yyt2 = YYCURSOR;
		goto yy146;
	case 's':
		yyt2 = YYCURSOR;
		goto yy147;
	case 'w':
		yyt2 = YYCURSOR;
		goto yy148;
	default:	goto yy34;
	}
yy114:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy149;
	default:	goto yy34;
	}
yy115:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy150;
	default:	goto yy34;
	}
yy116:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy151;
	default:	goto yy34;
	}
yy117:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy152;
	goto yy34;
yy118:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy154;
	default:	goto yy34;
	}
yy119:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy155;
	case 'h':	goto yy156;
	default:	goto yy34;
	}
yy120:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'h':	goto yy157;
	default:	goto yy34;
	}
yy121:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy158;
	default:	goto yy34;
	}
yy122:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt3;
	yypmatch[3] = yyt2;
	yypmatch[1] = YYCURSOR;
#line 158 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("pitch", group(1));
        goto end_region;
    }
#line 959 "src/sfizz/OpcodeCleanup.cpp"
yy124:
	yych = *++YYCURSOR;
	if (yych <= 0x00) {
		yyt2 = YYCURSOR;
		goto yy122;
	}
	goto yy124;
yy126:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':
		yyt2 = YYCURSOR;
		goto yy159;
	case 'd':
		yyt2 = YYCURSOR;
		goto yy160;
	case 'h':
		yyt2 = YYCURSOR;
		goto yy161;
	case 'r':
		yyt2 = YYCURSOR;
		goto yy162;
	case 's':
		yyt2 = YYCURSOR;
		goto yy163;
	case 'v':	goto yy164;
	default:	goto yy34;
	}
yy127:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy165;
	default:	goto yy34;
	}
yy128:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'w':	goto yy166;
	default:	goto yy34;
	}
yy129:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy95;
	default:	goto yy34;
	}
yy130:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy167;
	goto yy34;
yy131:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt2 = yyt3 = NULL;
		goto yy169;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt2 = YYCURSOR;
		goto yy171;
	case '_':
		yyt2 = yyt4 = NULL;
		yyt3 = YYCURSOR;
		goto yy173;
	default:	goto yy34;
	}
yy132:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy174;
	default:	goto yy34;
	}
yy133:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy175;
	default:	goto yy34;
	}
yy134:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy176;
	default:	goto yy34;
	}
yy135:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy177;
	default:	goto yy34;
	}
yy136:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy178;
	default:	goto yy34;
	}
yy137:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy179;
	default:	goto yy34;
	}
yy138:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy180;
	default:	goto yy34;
	}
yy139:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy181;
	default:	goto yy34;
	}
yy140:
	yych = *++YYCURSOR;
yy141:
	if (yych <= 0x00) {
		yyt2 = YYCURSOR;
		goto yy109;
	}
	goto yy140;
yy142:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy182;
	default:	goto yy141;
	}
yy143:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy183;
	default:	goto yy34;
	}
yy144:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'u':	goto yy184;
	default:	goto yy34;
	}
yy145:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy185;
	default:	goto yy34;
	}
yy146:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy186;
	case 'e':	goto yy187;
	default:	goto yy34;
	}
yy147:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy188;
	default:	goto yy34;
	}
yy148:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy189;
	default:	goto yy34;
	}
yy149:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy190;
	default:	goto yy34;
	}
yy150:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy191;
	default:	goto yy34;
	}
yy151:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy192;
	default:	goto yy34;
	}
yy152:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 3;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 127 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("off_", group(1));
        goto end_region;
    }
#line 1163 "src/sfizz/OpcodeCleanup.cpp"
yy154:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy117;
	default:	goto yy34;
	}
yy155:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy193;
	default:	goto yy34;
	}
yy156:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy194;
	default:	goto yy34;
	}
yy157:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy195;
	default:	goto yy34;
	}
yy158:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy196;
	default:	goto yy34;
	}
yy159:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy197;
	default:	goto yy34;
	}
yy160:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy198;
	default:	goto yy34;
	}
yy161:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy199;
	default:	goto yy34;
	}
yy162:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy200;
	default:	goto yy34;
	}
yy163:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy201;
	case 'u':	goto yy202;
	default:	goto yy34;
	}
yy164:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy203;
	default:	goto yy34;
	}
yy165:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':
		yyt2 = YYCURSOR;
		goto yy204;
	case 'f':
		yyt2 = YYCURSOR;
		goto yy205;
	default:	goto yy34;
	}
yy166:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy130;
	default:	goto yy34;
	}
yy167:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 4;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 131 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("bend_", group(1));
        goto end_region;
    }
#line 1260 "src/sfizz/OpcodeCleanup.cpp"
yy169:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt3;
	yypmatch[3] = yyt2;
	yypmatch[1] = YYCURSOR;
#line 181 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("cutoff1", group(1));
        goto end_region;
    }
#line 1273 "src/sfizz/OpcodeCleanup.cpp"
yy171:
	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 yy171;
	case '_':
		yyt4 = YYCURSOR;
		goto yy206;
	default:	goto yy34;
	}
yy173:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy209;
	default:	goto yy208;
	}
yy174:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy210;
	default:	goto yy34;
	}
yy175:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy211;
	default:	goto yy34;
	}
yy176:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy212;
	default:	goto yy34;
	}
yy177:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'q':	goto yy134;
	default:	goto yy34;
	}
yy178:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy134;
	default:	goto yy34;
	}
yy179:
	yych = *++YYCURSOR;
	switch (yych) {
	case '2':	goto yy213;
	default:	goto yy34;
	}
yy180:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy214;
	default:	goto yy34;
	}
yy181:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy215;
	goto yy34;
yy182:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy217;
	default:	goto yy141;
	}
yy183:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy218;
	default:	goto yy34;
	}
yy184:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy219;
	default:	goto yy34;
	}
yy185:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy220;
	default:	goto yy34;
	}
yy186:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy221;
	default:	goto yy34;
	}
yy187:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy222;
	default:	goto yy34;
	}
yy188:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy223;
	default:	goto yy34;
	}
yy189:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'v':	goto yy224;
	default:	goto yy34;
	}
yy190:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy225;
	goto yy34;
yy191:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy190;
	default:	goto yy34;
	}
yy192:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy227;
	default:	goto yy34;
	}
yy193:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt1 = YYCURSOR;
		goto yy228;
	default:	goto yy34;
	}
yy194:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy230;
	default:	goto yy34;
	}
yy195:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy231;
	default:	goto yy34;
	}
yy196:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy232;
	default:	goto yy34;
	}
yy197:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy233;
	default:	goto yy34;
	}
yy198:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':
	case 'l':	goto yy234;
	default:	goto yy34;
	}
yy199:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy235;
	default:	goto yy34;
	}
yy200:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy236;
	default:	goto yy34;
	}
yy201:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy237;
	default:	goto yy34;
	}
yy202:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy238;
	default:	goto yy34;
	}
yy203:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy239;
	default:	goto yy34;
	}
yy204:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy240;
	default:	goto yy34;
	}
yy205:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy241;
	case 'r':	goto yy242;
	default:	goto yy34;
	}
yy206:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy243;
	default:	goto yy34;
	}
yy207:
	yych = *++YYCURSOR;
yy208:
	if (yych <= 0x00) {
		yyt2 = YYCURSOR;
		goto yy169;
	}
	goto yy207;
yy209:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy244;
	default:	goto yy208;
	}
yy210:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy245;
	default:	goto yy34;
	}
yy211:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy246;
	default:	goto yy34;
	}
yy212:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt3 = YYCURSOR;
		goto yy247;
	default:	goto yy34;
	}
yy213:
	yych = *++YYCURSOR;
	yyt2 = YYCURSOR;
	goto yy252;
yy214:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy253;
	goto yy34;
yy215:
	++YYCURSOR;
	yynmatch = 1;
	yypmatch[0] = YYCURSOR - 8;
	yypmatch[1] = YYCURSOR;
#line 135 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("fil1_type");
        goto end_region;
    }
#line 1566 "src/sfizz/OpcodeCleanup.cpp"
yy217:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy255;
	default:	goto yy141;
	}
yy218:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt1 = YYCURSOR;
		goto yy256;
	default:	goto yy34;
	}
yy219:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy258;
	default:	goto yy34;
	}
yy220:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy259;
	default:	goto yy34;
	}
yy221:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy260;
	default:	goto yy34;
	}
yy222:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy261;
	default:	goto yy34;
	}
yy223:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy224;
	default:	goto yy34;
	}
yy224:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy262;
	default:	goto yy34;
	}
yy225:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 4;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 123 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("loop_", group(1));
        goto end_region;
    }
#line 1638 "src/sfizz/OpcodeCleanup.cpp"
yy227:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy190;
	default:	goto yy34;
	}
yy228:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy263;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy228;
	default:	goto yy34;
	}
yy230:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy265;
	default:	goto yy34;
	}
yy231:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy266;
	default:	goto yy34;
	}
yy232:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy267;
	default:	goto yy34;
	}
yy233:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy268;
	default:	goto yy34;
	}
yy234:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy269;
	default:	goto yy34;
	}
yy235:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy270;
	default:	goto yy34;
	}
yy236:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy271;
	default:	goto yy34;
	}
yy237:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy272;
	default:	goto yy34;
	}
yy238:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy273;
	default:	goto yy34;
	}
yy239:
	yych = *++YYCURSOR;
	switch (yych) {
	case '2':	goto yy274;
	default:	goto yy34;
	}
yy240:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy275;
	default:	goto yy34;
	}
yy241:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy276;
	default:	goto yy34;
	}
yy242:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy277;
	default:	goto yy34;
	}
yy243:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy278;
	default:	goto yy34;
	}
yy244:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy279;
	default:	goto yy208;
	}
yy245:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy280;
	default:	goto yy34;
	}
yy246:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy281;
	default:	goto yy34;
	}
yy247:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy282;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy247;
	default:	goto yy34;
	}
yy249:
	++YYCURSOR;
	yynmatch = 3;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 5;
	yypmatch[5] = YYCURSOR - 1;
#line 107 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_velto", group(2));
        goto end_region;
    }
#line 1793 "src/sfizz/OpcodeCleanup.cpp"
yy251:
	yych = *++YYCURSOR;
yy252:
	if (yych <= 0x00) goto yy249;
	goto yy251;
yy253:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 3;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 5;
#line 139 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("fil", group(1), "_type");
        goto end_region;
    }
#line 1811 "src/sfizz/OpcodeCleanup.cpp"
yy255:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy284;
	default:	goto yy141;
	}
yy256:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy285;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy256;
	default:	goto yy34;
	}
yy258:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy287;
	default:	goto yy34;
	}
yy259:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy288;
	default:	goto yy34;
	}
yy260:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy262;
	default:	goto yy34;
	}
yy261:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy289;
	default:	goto yy34;
	}
yy262:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy290;
	goto yy34;
yy263:
	++YYCURSOR;
	yynmatch = 3;
	yypmatch[4] = yyt1;
	yypmatch[0] = yyt1 - 7;
	yypmatch[1] = YYCURSOR;
	yypmatch[2] = yyt1 - 4;
	yypmatch[3] = yyt1 - 2;
	yypmatch[5] = YYCURSOR - 1;
#line 163 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("start_", group(1), "cc", group(2));
        goto end_region;
    }
#line 1876 "src/sfizz/OpcodeCleanup.cpp"
yy265:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt1 = YYCURSOR;
		goto yy292;
	default:	goto yy34;
	}
yy266:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy294;
	default:	goto yy34;
	}
yy267:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt2 = yyt3 = NULL;
		goto yy295;
	case '_':
		yyt3 = YYCURSOR;
		goto yy297;
	default:	goto yy34;
	}
yy268:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy299;
	default:	goto yy34;
	}
yy269:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy270;
	default:	goto yy34;
	}
yy270:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy300;
	default:	goto yy34;
	}
yy271:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy301;
	default:	goto yy34;
	}
yy272:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy270;
	default:	goto yy34;
	}
yy273:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy302;
	default:	goto yy34;
	}
yy274:
	yych = *++YYCURSOR;
	yyt2 = YYCURSOR;
	goto yy306;
yy275:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy307;
	default:	goto yy34;
	}
yy276:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy308;
	default:	goto yy34;
	}
yy277:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'q':	goto yy308;
	default:	goto yy34;
	}
yy278:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy309;
	default:	goto yy34;
	}
yy279:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy310;
	default:	goto yy208;
	}
yy280:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt4 = yyt5 = NULL;
		yyt3 = YYCURSOR;
		goto yy311;
	case '_':
		yyt3 = yyt5 = YYCURSOR;
		goto yy313;
	default:	goto yy34;
	}
yy281:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy315;
	default:	goto yy34;
	}
yy282:
	++YYCURSOR;
	yynmatch = 4;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[6] = yyt3;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 1;
	yypmatch[5] = yyt3 - 2;
	yypmatch[7] = YYCURSOR - 1;
#line 103 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3));
        goto end_region;
    }
#line 2015 "src/sfizz/OpcodeCleanup.cpp"
yy284:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'm':	goto yy316;
	default:	goto yy141;
	}
yy285:
	++YYCURSOR;
	yynmatch = 3;
	yypmatch[4] = yyt1;
	yypmatch[0] = yyt1 - 8;
	yypmatch[1] = YYCURSOR;
	yypmatch[2] = yyt1 - 8;
	yypmatch[3] = yyt1 - 6;
	yypmatch[5] = YYCURSOR - 1;
#line 190 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "hdcc", group(2));
        goto end_region;
    }
#line 2036 "src/sfizz/OpcodeCleanup.cpp"
yy287:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy317;
	default:	goto yy34;
	}
yy288:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy262;
	default:	goto yy34;
	}
yy289:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy318;
	default:	goto yy34;
	}
yy290:
	++YYCURSOR;
	yynmatch = 3;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 1;
	yypmatch[5] = YYCURSOR - 1;
#line 111 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_", group(2), "1");
        goto end_region;
    }
#line 2069 "src/sfizz/OpcodeCleanup.cpp"
yy292:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy319;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy292;
	default:	goto yy34;
	}
yy294:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'g':	goto yy321;
	default:	goto yy34;
	}
yy295:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt3;
	yypmatch[3] = yyt2;
	yypmatch[1] = YYCURSOR;
#line 185 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("resonance1", group(1));
        goto end_region;
    }
#line 2104 "src/sfizz/OpcodeCleanup.cpp"
yy297:
	yych = *++YYCURSOR;
	if (yych <= 0x00) {
		yyt2 = YYCURSOR;
		goto yy295;
	}
	goto yy297;
yy299:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'k':	goto yy270;
	default:	goto yy34;
	}
yy300:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy322;
	default:	goto yy34;
	}
yy301:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy323;
	default:	goto yy34;
	}
yy302:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy324;
	default:	goto yy34;
	}
yy303:
	++YYCURSOR;
	yynmatch = 3;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 5;
	yypmatch[5] = YYCURSOR - 1;
#line 99 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_velto", group(2));
        goto end_region;
    }
#line 2150 "src/sfizz/OpcodeCleanup.cpp"
yy305:
	yych = *++YYCURSOR;
yy306:
	if (yych <= 0x00) goto yy303;
	goto yy305;
yy307:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'h':	goto yy308;
	default:	goto yy34;
	}
yy308:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy325;
	default:	goto yy34;
	}
yy309:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy326;
	default:	goto yy34;
	}
yy310:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy327;
	default:	goto yy208;
	}
yy311:
	++YYCURSOR;
	yynmatch = 4;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[5] = yyt3;
	yypmatch[6] = yyt5;
	yypmatch[7] = yyt4;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 1;
#line 119 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_", group(2), "1", group(3));
        goto end_region;
    }
#line 2196 "src/sfizz/OpcodeCleanup.cpp"
yy313:
	yych = *++YYCURSOR;
	if (yych <= 0x00) {
		yyt4 = YYCURSOR;
		goto yy311;
	}
	goto yy313;
yy315:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy328;
	default:	goto yy34;
	}
yy316:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy329;
	goto yy140;
yy317:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt4 = yyt5 = NULL;
		yyt3 = YYCURSOR;
		goto yy331;
	case '_':
		yyt3 = yyt5 = YYCURSOR;
		goto yy333;
	default:	goto yy34;
	}
yy318:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy335;
	default:	goto yy34;
	}
yy319:
	++YYCURSOR;
	yynmatch = 3;
	yypmatch[4] = yyt1;
	yypmatch[0] = yyt1 - 9;
	yypmatch[1] = YYCURSOR;
	yypmatch[2] = yyt1 - 6;
	yypmatch[3] = yyt1 - 4;
	yypmatch[5] = YYCURSOR - 1;
#line 167 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("start_", group(1), "hdcc", group(2));
        goto end_region;
    }
#line 2246 "src/sfizz/OpcodeCleanup.cpp"
yy321:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy336;
	default:	goto yy34;
	}
yy322:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt3 = YYCURSOR;
		goto yy337;
	default:	goto yy34;
	}
yy323:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy270;
	default:	goto yy34;
	}
yy324:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy270;
	default:	goto yy34;
	}
yy325:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy339;
	default:	goto yy34;
	}
yy326:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy340;
	default:	goto yy34;
	}
yy327:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'm':	goto yy341;
	default:	goto yy208;
	}
yy328:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy280;
	default:	goto yy34;
	}
yy329:
	++YYCURSOR;
	yynmatch = 1;
	yypmatch[0] = YYCURSOR - 12;
	yypmatch[1] = YYCURSOR;
#line 149 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = "amp_random";
        goto end_region;
    }
#line 2316 "src/sfizz/OpcodeCleanup.cpp"
yy331:
	++YYCURSOR;
	yynmatch = 4;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[5] = yyt3;
	yypmatch[6] = yyt5;
	yypmatch[7] = yyt4;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 1;
#line 115 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_", group(2), "1", group(3));
        goto end_region;
    }
#line 2333 "src/sfizz/OpcodeCleanup.cpp"
yy333:
	yych = *++YYCURSOR;
	if (yych <= 0x00) {
		yyt4 = YYCURSOR;
		goto yy331;
	}
	goto yy333;
yy335:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy342;
	default:	goto yy34;
	}
yy336:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy343;
	default:	goto yy34;
	}
yy337:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy344;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy337;
	default:	goto yy34;
	}
yy339:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt3 = YYCURSOR;
		goto yy346;
	default:	goto yy34;
	}
yy340:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'm':	goto yy348;
	default:	goto yy34;
	}
yy341:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy349;
	goto yy207;
yy342:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy317;
	default:	goto yy34;
	}
yy343:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'u':	goto yy351;
	default:	goto yy34;
	}
yy344:
	++YYCURSOR;
	yynmatch = 4;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[6] = yyt3;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 1;
	yypmatch[5] = yyt3 - 2;
	yypmatch[7] = YYCURSOR - 1;
#line 95 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3));
        goto end_region;
    }
#line 2424 "src/sfizz/OpcodeCleanup.cpp"
yy346:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy352;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy346;
	default:	goto yy34;
	}
yy348:
	yych = *++YYCURSOR;
	if (yych >= 0x01) goto yy34;
yy349:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt2;
	yypmatch[3] = yyt4;
	yypmatch[1] = YYCURSOR;
#line 172 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("fil", group(1), "_random");
        goto again_region;
    }
#line 2456 "src/sfizz/OpcodeCleanup.cpp"
yy351:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy354;
	default:	goto yy34;
	}
yy352:
	++YYCURSOR;
	yynmatch = 4;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[6] = yyt3;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 1;
	yypmatch[5] = yyt3 - 2;
	yypmatch[7] = YYCURSOR - 1;
#line 91 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3));
        goto end_region;
    }
#line 2479 "src/sfizz/OpcodeCleanup.cpp"
yy354:
	yych = *++YYCURSOR;
	if (yych >= 0x01) goto yy34;
	++YYCURSOR;
	yynmatch = 1;
	yypmatch[0] = YYCURSOR - 16;
	yypmatch[1] = YYCURSOR;
#line 144 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = "group";
        goto end_region;
    }
#line 2492 "src/sfizz/OpcodeCleanup.cpp"
}
#line 199 "src/sfizz/OpcodeCleanup.re"


end_region:
    /* end */;

    } // scope == kOpcodeScopeRegion

    //--------------------------------------------------------------------------

    if (scope == kOpcodeScopeControl) {

    YYCURSOR = opcode.c_str();

    
#line 2509 "src/sfizz/OpcodeCleanup.cpp"
{
	char yych;
	yych = *YYCURSOR;
	switch (yych) {
	case 's':	goto yy361;
	default:	goto yy359;
	}
yy359:
	++YYCURSOR;
yy360:
#line 219 "src/sfizz/OpcodeCleanup.re"
	{
        goto end_control;
    }
#line 2524 "src/sfizz/OpcodeCleanup.cpp"
yy361:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'e':	goto yy362;
	default:	goto yy360;
	}
yy362:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy364;
	default:	goto yy363;
	}
yy363:
	YYCURSOR = YYMARKER;
	goto yy360;
yy364:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy365;
	default:	goto yy363;
	}
yy365:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy366;
	default:	goto yy363;
	}
yy366:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy367;
	default:	goto yy363;
	}
yy367:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy368;
	default:	goto yy363;
	}
yy368:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy369;
	default:	goto yy363;
	}
yy369:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy370;
	default:	goto yy363;
	}
yy370:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy371;
	default:	goto yy363;
	}
yy371:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt1 = YYCURSOR;
		goto yy372;
	default:	goto yy363;
	}
yy372:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy374;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy372;
	default:	goto yy363;
	}
yy374:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 10;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 214 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("set_hdcc", group(1));
        goto end_control;
    }
#line 2627 "src/sfizz/OpcodeCleanup.cpp"
}
#line 223 "src/sfizz/OpcodeCleanup.re"


end_control:
    /* end */;

    } // scope == kOpcodeScopeControl

    //--------------------------------------------------------------------------


    #undef YYMAXNMATCH

    return opcode;
}

Opcode Opcode::cleanUp(OpcodeScope scope) const
{
    return Opcode(cleanUpOpcodeName(name, scope), value);
}

} // namespace sfz
