/* Generated by re2c 1.3 on Fri May 15 08:30:58 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 "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 27 "src/sfizz/OpcodeCleanup.re"

    #define YYMAXNMATCH 4


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

    const char* yyt1; const char* yyt2; const char* yyt3; 

    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 48 "src/sfizz/OpcodeCleanup.re"


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

    if (scope == kOpcodeScopeRegion) {

    YYCURSOR = opcode.c_str();

    
#line 54 "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 63 "src/sfizz/OpcodeCleanup.re"
	{
        goto end_region_oncc;
    }
#line 74 "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 58 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_oncc", group(2));
        goto end_region_oncc;
    }
#line 163 "src/sfizz/OpcodeCleanup.cpp"
}
#line 67 "src/sfizz/OpcodeCleanup.re"


end_region_oncc:
    /* end */;

    } // scope == kOpcodeScopeRegion

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

    if (scope == kOpcodeScopeRegion) {

    YYCURSOR = opcode.c_str();

    
#line 180 "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 166 "src/sfizz/OpcodeCleanup.re"
	{
        goto end_region;
    }
#line 224 "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 'q':	goto yy37;
	default:	goto yy20;
	}
yy25:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'i':	goto yy38;
	default:	goto yy20;
	}
yy26:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'a':	goto yy39;
	default:	goto yy20;
	}
yy27:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'i':	goto yy40;
	default:	goto yy20;
	}
yy28:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'f':	goto yy41;
	case 'o':	goto yy42;
	default:	goto yy20;
	}
yy29:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'f':	goto yy43;
	case 'n':	goto yy44;
	default:	goto yy20;
	}
yy30:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'i':	goto yy45;
	case 'o':	goto yy46;
	default:	goto yy20;
	}
yy31:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'e':	goto yy47;
	default:	goto yy20;
	}
yy32:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'u':	goto yy48;
	default:	goto yy20;
	}
yy33:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy49;
	default:	goto yy34;
	}
yy34:
	YYCURSOR = YYMARKER;
	goto yy20;
yy35:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy50;
	default:	goto yy34;
	}
yy36:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy51;
	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 yy52;
	default:	goto yy34;
	}
yy38:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy54;
	default:	goto yy34;
	}
yy39:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy55;
	default:	goto yy34;
	}
yy40:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy56;
	default:	goto yy34;
	}
yy41:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy57;
	default:	goto yy34;
	}
yy42:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy58;
	case 'r':	goto yy56;
	default:	goto yy34;
	}
yy43:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy59;
	default:	goto yy34;
	}
yy44:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy60;
	default:	goto yy34;
	}
yy45:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy61;
	default:	goto yy34;
	}
yy46:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy62;
	default:	goto yy34;
	}
yy47:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy63;
	default:	goto yy34;
	}
yy48:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy64;
	default:	goto yy34;
	}
yy49:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy65;
	case 'l':	goto yy66;
	default:	goto yy34;
	}
yy50:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy67;
	default:	goto yy34;
	}
yy51:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy68;
	default:	goto yy34;
	}
yy52:
	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 yy52;
	case '_':	goto yy69;
	default:	goto yy34;
	}
yy54:
	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 yy70;
	case '_':	goto yy72;
	case 'e':	goto yy65;
	case 'l':	goto yy66;
	case 't':	goto yy73;
	default:	goto yy34;
	}
yy55:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy74;
	default:	goto yy34;
	}
yy56:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy75;
	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':	goto yy76;
	default:	goto yy34;
	}
yy58:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy78;
	default:	goto yy34;
	}
yy59:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'b':
		yyt1 = YYCURSOR;
		goto yy79;
	case 'm':
		yyt1 = YYCURSOR;
		goto yy80;
	default:	goto yy34;
	}
yy60:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'h':	goto yy81;
	case 'l':	goto yy82;
	default:	goto yy34;
	}
yy61:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy83;
	default:	goto yy34;
	}
yy62:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy84;
	default:	goto yy34;
	}
yy63:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy85;
	default:	goto yy34;
	}
yy64:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy86;
	default:	goto yy34;
	}
yy65:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'g':	goto yy87;
	default:	goto yy34;
	}
yy66:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy88;
	default:	goto yy34;
	}
yy67:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':
		yyt1 = YYCURSOR;
		goto yy89;
	case 'u':
		yyt1 = YYCURSOR;
		goto yy90;
	default:	goto yy34;
	}
yy68:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy91;
	default:	goto yy34;
	}
yy69:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'b':
		yyt2 = YYCURSOR;
		goto yy92;
	case 'f':
		yyt2 = YYCURSOR;
		goto yy93;
	case 'g':
		yyt2 = YYCURSOR;
		goto yy94;
	default:	goto yy34;
	}
yy70:
	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 yy70;
	case 't':	goto yy95;
	default:	goto yy34;
	}
yy72:
	yych = *++YYCURSOR;
	yyt1 = YYCURSOR;
	goto yy99;
yy73:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy100;
	default:	goto yy34;
	}
yy74:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt2 = yyt3 = NULL;
		goto yy101;
	case '_':
		yyt3 = YYCURSOR;
		goto yy103;
	default:	goto yy34;
	}
yy75:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy105;
	default:	goto yy34;
	}
yy76:
	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 yy76;
	case '_':	goto yy106;
	default:	goto yy34;
	}
yy78:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':
		yyt1 = YYCURSOR;
		goto yy107;
	case 'm':
		yyt1 = YYCURSOR;
		goto yy108;
	case 's':
		yyt1 = YYCURSOR;
		goto yy109;
	default:	goto yy34;
	}
yy79:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy110;
	default:	goto yy34;
	}
yy80:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy111;
	default:	goto yy34;
	}
yy81:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy112;
	default:	goto yy34;
	}
yy82:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy112;
	default:	goto yy34;
	}
yy83:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'h':	goto yy49;
	default:	goto yy34;
	}
yy84:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy113;
	default:	goto yy34;
	}
yy85:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy114;
	default:	goto yy34;
	}
yy86:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt2 = yyt3 = NULL;
		goto yy115;
	case '_':
		yyt3 = YYCURSOR;
		goto yy117;
	default:	goto yy34;
	}
yy87:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy119;
	default:	goto yy34;
	}
yy88:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy120;
	default:	goto yy34;
	}
yy89:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy121;
	default:	goto yy34;
	}
yy90:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy122;
	default:	goto yy34;
	}
yy91:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy123;
	default:	goto yy34;
	}
yy92:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'w':	goto yy124;
	default:	goto yy34;
	}
yy93:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy125;
	default:	goto yy34;
	}
yy94:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy126;
	default:	goto yy34;
	}
yy95:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy127;
	default:	goto yy34;
	}
yy96:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 4;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 148 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("fil1_", group(1));
        goto end_region;
    }
#line 769 "src/sfizz/OpcodeCleanup.cpp"
yy98:
	yych = *++YYCURSOR;
yy99:
	if (yych <= 0x00) goto yy96;
	goto yy98;
yy100:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy128;
	default:	goto yy34;
	}
yy101:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt3;
	yypmatch[3] = yyt2;
	yypmatch[1] = YYCURSOR;
#line 130 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("volume", group(1));
        goto end_region;
    }
#line 793 "src/sfizz/OpcodeCleanup.cpp"
yy103:
	yych = *++YYCURSOR;
	if (yych <= 0x00) {
		yyt2 = YYCURSOR;
		goto yy101;
	}
	goto yy103;
yy105:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy129;
	default:	goto yy34;
	}
yy106:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':
		yyt2 = YYCURSOR;
		goto yy130;
	case 'r':
		yyt2 = YYCURSOR;
		goto yy131;
	case 's':
		yyt2 = YYCURSOR;
		goto yy132;
	case 'w':
		yyt2 = YYCURSOR;
		goto yy133;
	default:	goto yy34;
	}
yy107:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy134;
	default:	goto yy34;
	}
yy108:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy135;
	default:	goto yy34;
	}
yy109:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy136;
	default:	goto yy34;
	}
yy110:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy137;
	goto yy34;
yy111:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy139;
	default:	goto yy34;
	}
yy112:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy140;
	case 'h':	goto yy141;
	default:	goto yy34;
	}
yy113:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'h':	goto yy142;
	default:	goto yy34;
	}
yy114:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy143;
	default:	goto yy34;
	}
yy115:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt3;
	yypmatch[3] = yyt2;
	yypmatch[1] = YYCURSOR;
#line 134 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("pitch", group(1));
        goto end_region;
    }
#line 883 "src/sfizz/OpcodeCleanup.cpp"
yy117:
	yych = *++YYCURSOR;
	if (yych <= 0x00) {
		yyt2 = YYCURSOR;
		goto yy115;
	}
	goto yy117;
yy119:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':
		yyt2 = YYCURSOR;
		goto yy144;
	case 'd':
		yyt2 = YYCURSOR;
		goto yy145;
	case 'h':
		yyt2 = YYCURSOR;
		goto yy146;
	case 'r':
		yyt2 = YYCURSOR;
		goto yy147;
	case 's':
		yyt2 = YYCURSOR;
		goto yy148;
	default:	goto yy34;
	}
yy120:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy149;
	default:	goto yy34;
	}
yy121:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'w':	goto yy150;
	default:	goto yy34;
	}
yy122:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy151;
	goto yy34;
yy123:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt2 = yyt3 = NULL;
		goto yy153;
	case '_':
		yyt3 = YYCURSOR;
		goto yy155;
	default:	goto yy34;
	}
yy124:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy157;
	default:	goto yy34;
	}
yy125:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy158;
	default:	goto yy34;
	}
yy126:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy159;
	default:	goto yy34;
	}
yy127:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy160;
	default:	goto yy34;
	}
yy128:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy161;
	default:	goto yy34;
	}
yy129:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy162;
	default:	goto yy34;
	}
yy130:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy163;
	default:	goto yy34;
	}
yy131:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy164;
	default:	goto yy34;
	}
yy132:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy165;
	default:	goto yy34;
	}
yy133:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy166;
	default:	goto yy34;
	}
yy134:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy167;
	default:	goto yy34;
	}
yy135:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy168;
	default:	goto yy34;
	}
yy136:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy169;
	default:	goto yy34;
	}
yy137:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 3;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 108 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("off_", group(1));
        goto end_region;
    }
#line 1028 "src/sfizz/OpcodeCleanup.cpp"
yy139:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy110;
	default:	goto yy34;
	}
yy140:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy170;
	default:	goto yy34;
	}
yy141:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy171;
	default:	goto yy34;
	}
yy142:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy172;
	default:	goto yy34;
	}
yy143:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy173;
	default:	goto yy34;
	}
yy144:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy174;
	default:	goto yy34;
	}
yy145:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy175;
	default:	goto yy34;
	}
yy146:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy176;
	default:	goto yy34;
	}
yy147:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy177;
	default:	goto yy34;
	}
yy148:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy178;
	case 'u':	goto yy179;
	default:	goto yy34;
	}
yy149:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':
		yyt2 = YYCURSOR;
		goto yy180;
	case 'f':
		yyt2 = YYCURSOR;
		goto yy181;
	default:	goto yy34;
	}
yy150:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy122;
	default:	goto yy34;
	}
yy151:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 4;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 112 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("bend_", group(1));
        goto end_region;
    }
#line 1119 "src/sfizz/OpcodeCleanup.cpp"
yy153:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt3;
	yypmatch[3] = yyt2;
	yypmatch[1] = YYCURSOR;
#line 152 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("cutoff1", group(1));
        goto end_region;
    }
#line 1132 "src/sfizz/OpcodeCleanup.cpp"
yy155:
	yych = *++YYCURSOR;
	if (yych <= 0x00) {
		yyt2 = YYCURSOR;
		goto yy153;
	}
	goto yy155;
yy157:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy182;
	default:	goto yy34;
	}
yy158:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'q':	goto yy124;
	default:	goto yy34;
	}
yy159:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy124;
	default:	goto yy34;
	}
yy160:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy183;
	default:	goto yy34;
	}
yy161:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy184;
	goto yy34;
yy162:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy186;
	default:	goto yy34;
	}
yy163:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'f':	goto yy187;
	default:	goto yy34;
	}
yy164:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy188;
	default:	goto yy34;
	}
yy165:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy189;
	default:	goto yy34;
	}
yy166:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'v':	goto yy190;
	default:	goto yy34;
	}
yy167:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy191;
	goto yy34;
yy168:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy167;
	default:	goto yy34;
	}
yy169:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy193;
	default:	goto yy34;
	}
yy170:
	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 yy194;
	default:	goto yy34;
	}
yy171:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy196;
	default:	goto yy34;
	}
yy172:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy197;
	default:	goto yy34;
	}
yy173:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy198;
	default:	goto yy34;
	}
yy174:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy199;
	default:	goto yy34;
	}
yy175:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':
	case 'l':	goto yy200;
	default:	goto yy34;
	}
yy176:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy201;
	default:	goto yy34;
	}
yy177:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy202;
	default:	goto yy34;
	}
yy178:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy203;
	default:	goto yy34;
	}
yy179:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy204;
	default:	goto yy34;
	}
yy180:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy205;
	default:	goto yy34;
	}
yy181:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy206;
	case 'r':	goto yy207;
	default:	goto yy34;
	}
yy182:
	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 yy208;
	default:	goto yy34;
	}
yy183:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy210;
	goto yy34;
yy184:
	++YYCURSOR;
	yynmatch = 1;
	yypmatch[0] = YYCURSOR - 8;
	yypmatch[1] = YYCURSOR;
#line 116 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("fil1_type");
        goto end_region;
    }
#line 1330 "src/sfizz/OpcodeCleanup.cpp"
yy186:
	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 yy212;
	default:	goto yy34;
	}
yy187:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy214;
	default:	goto yy34;
	}
yy188:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy215;
	default:	goto yy34;
	}
yy189:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy190;
	default:	goto yy34;
	}
yy190:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy216;
	default:	goto yy34;
	}
yy191:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 4;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 104 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("loop_", group(1));
        goto end_region;
    }
#line 1384 "src/sfizz/OpcodeCleanup.cpp"
yy193:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy167;
	default:	goto yy34;
	}
yy194:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy217;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy194;
	default:	goto yy34;
	}
yy196:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy219;
	default:	goto yy34;
	}
yy197:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy220;
	default:	goto yy34;
	}
yy198:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy221;
	default:	goto yy34;
	}
yy199:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy222;
	default:	goto yy34;
	}
yy200:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy223;
	default:	goto yy34;
	}
yy201:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy224;
	default:	goto yy34;
	}
yy202:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy225;
	default:	goto yy34;
	}
yy203:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy226;
	default:	goto yy34;
	}
yy204:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy227;
	default:	goto yy34;
	}
yy205:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy228;
	default:	goto yy34;
	}
yy206:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'd':	goto yy229;
	default:	goto yy34;
	}
yy207:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy230;
	default:	goto yy34;
	}
yy208:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy231;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy208;
	default:	goto yy34;
	}
yy210:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 3;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 5;
#line 120 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("fil", group(1), "_type");
        goto end_region;
    }
#line 1507 "src/sfizz/OpcodeCleanup.cpp"
yy212:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy233;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy212;
	default:	goto yy34;
	}
yy214:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy235;
	default:	goto yy34;
	}
yy215:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy216;
	default:	goto yy34;
	}
yy216:
	yych = *++YYCURSOR;
	if (yych <= 0x00) goto yy236;
	goto yy34;
yy217:
	++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 139 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("start_", group(1), "cc", group(2));
        goto end_region;
    }
#line 1554 "src/sfizz/OpcodeCleanup.cpp"
yy219:
	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 yy238;
	default:	goto yy34;
	}
yy220:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy240;
	default:	goto yy34;
	}
yy221:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:
		yyt2 = yyt3 = NULL;
		goto yy241;
	case '_':
		yyt3 = YYCURSOR;
		goto yy243;
	default:	goto yy34;
	}
yy222:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy245;
	default:	goto yy34;
	}
yy223:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'y':	goto yy224;
	default:	goto yy34;
	}
yy224:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy246;
	default:	goto yy34;
	}
yy225:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy247;
	default:	goto yy34;
	}
yy226:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy224;
	default:	goto yy34;
	}
yy227:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy248;
	default:	goto yy34;
	}
yy228:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy249;
	default:	goto yy34;
	}
yy229:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy250;
	default:	goto yy34;
	}
yy230:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'q':	goto yy250;
	default:	goto yy34;
	}
yy231:
	++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 1659 "src/sfizz/OpcodeCleanup.cpp"
yy233:
	++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 161 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "hdcc", group(2));
        goto end_region;
    }
#line 1674 "src/sfizz/OpcodeCleanup.cpp"
yy235:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy216;
	default:	goto yy34;
	}
yy236:
	++YYCURSOR;
	yynmatch = 3;
	yypmatch[2] = yyt1;
	yypmatch[4] = yyt2;
	yypmatch[0] = yyt1;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = yyt2 - 1;
	yypmatch[5] = YYCURSOR - 1;
#line 99 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_", group(2), "1");
        goto end_region;
    }
#line 1695 "src/sfizz/OpcodeCleanup.cpp"
yy238:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy251;
	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:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'g':	goto yy253;
	default:	goto yy34;
	}
yy241:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[0] = yyt1;
	yypmatch[2] = yyt3;
	yypmatch[3] = yyt2;
	yypmatch[1] = YYCURSOR;
#line 156 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("resonance1", group(1));
        goto end_region;
    }
#line 1730 "src/sfizz/OpcodeCleanup.cpp"
yy243:
	yych = *++YYCURSOR;
	if (yych <= 0x00) {
		yyt2 = YYCURSOR;
		goto yy241;
	}
	goto yy243;
yy245:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'k':	goto yy224;
	default:	goto yy34;
	}
yy246:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy254;
	default:	goto yy34;
	}
yy247:
	yych = *++YYCURSOR;
	switch (yych) {
	case 's':	goto yy255;
	default:	goto yy34;
	}
yy248:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'i':	goto yy256;
	default:	goto yy34;
	}
yy249:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'h':	goto yy250;
	default:	goto yy34;
	}
yy250:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy257;
	default:	goto yy34;
	}
yy251:
	++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 143 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("start_", group(1), "hdcc", group(2));
        goto end_region;
    }
#line 1788 "src/sfizz/OpcodeCleanup.cpp"
yy253:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy258;
	default:	goto yy34;
	}
yy254:
	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 yy259;
	default:	goto yy34;
	}
yy255:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy224;
	default:	goto yy34;
	}
yy256:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'n':	goto yy224;
	default:	goto yy34;
	}
yy257:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy261;
	default:	goto yy34;
	}
yy258:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'o':	goto yy262;
	default:	goto yy34;
	}
yy259:
	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 yy259;
	default:	goto yy34;
	}
yy261:
	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 yy265;
	default:	goto yy34;
	}
yy262:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'u':	goto yy267;
	default:	goto yy34;
	}
yy263:
	++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 1891 "src/sfizz/OpcodeCleanup.cpp"
yy265:
	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 yy265;
	default:	goto yy34;
	}
yy267:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'p':	goto yy270;
	default:	goto yy34;
	}
yy268:
	++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 87 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat(group(1), "_", group(2), "_oncc", group(3));
        goto end_region;
    }
#line 1930 "src/sfizz/OpcodeCleanup.cpp"
yy270:
	yych = *++YYCURSOR;
	if (yych >= 0x01) goto yy34;
	++YYCURSOR;
	yynmatch = 1;
	yypmatch[0] = YYCURSOR - 16;
	yypmatch[1] = YYCURSOR;
#line 125 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = "group";
        goto end_region;
    }
#line 1943 "src/sfizz/OpcodeCleanup.cpp"
}
#line 170 "src/sfizz/OpcodeCleanup.re"


end_region:
    /* end */;

    } // scope == kOpcodeScopeRegion

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

    if (scope == kOpcodeScopeControl) {

    YYCURSOR = opcode.c_str();

    
#line 1960 "src/sfizz/OpcodeCleanup.cpp"
{
	char yych;
	yych = *YYCURSOR;
	switch (yych) {
	case 's':	goto yy277;
	default:	goto yy275;
	}
yy275:
	++YYCURSOR;
yy276:
#line 190 "src/sfizz/OpcodeCleanup.re"
	{
        goto end_control;
    }
#line 1975 "src/sfizz/OpcodeCleanup.cpp"
yy277:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'e':	goto yy278;
	default:	goto yy276;
	}
yy278:
	yych = *++YYCURSOR;
	switch (yych) {
	case 't':	goto yy280;
	default:	goto yy279;
	}
yy279:
	YYCURSOR = YYMARKER;
	goto yy276;
yy280:
	yych = *++YYCURSOR;
	switch (yych) {
	case '_':	goto yy281;
	default:	goto yy279;
	}
yy281:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'r':	goto yy282;
	default:	goto yy279;
	}
yy282:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'e':	goto yy283;
	default:	goto yy279;
	}
yy283:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'a':	goto yy284;
	default:	goto yy279;
	}
yy284:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'l':	goto yy285;
	default:	goto yy279;
	}
yy285:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy286;
	default:	goto yy279;
	}
yy286:
	yych = *++YYCURSOR;
	switch (yych) {
	case 'c':	goto yy287;
	default:	goto yy279;
	}
yy287:
	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 yy288;
	default:	goto yy279;
	}
yy288:
	yych = *++YYCURSOR;
	switch (yych) {
	case 0x00:	goto yy290;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy288;
	default:	goto yy279;
	}
yy290:
	++YYCURSOR;
	yynmatch = 2;
	yypmatch[2] = yyt1;
	yypmatch[0] = yyt1 - 10;
	yypmatch[1] = YYCURSOR;
	yypmatch[3] = YYCURSOR - 1;
#line 185 "src/sfizz/OpcodeCleanup.re"
	{
        opcode = absl::StrCat("set_hdcc", group(1));
        goto end_control;
    }
#line 2078 "src/sfizz/OpcodeCleanup.cpp"
}
#line 194 "src/sfizz/OpcodeCleanup.re"


end_control:
    /* end */;

    } // scope == kOpcodeScopeControl

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


    #undef YYMAXNMATCH

    return opcode;
}

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

} // namespace sfz
