static void capture_list(t_capture *x, t_symbol *s, int ac, t_atom *av) { while (ac--) { if (av->a_type == A_FLOAT) /* CHECKME */ capture_float(x, av->a_w.w_float); av++; } }
Token *Lexer::scan() { #define YYCTYPE char #define YYCURSOR (this->cursor) #define YYLIMIT (this->lim) #define YYMARKER (this->marker) #define YYFILL(n) {fill();} for(;;) { capture_begin(); #line 22 "<stdout>" { YYCTYPE yych; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; switch (yych) { case 0x00: goto yy26; case '\t': case '\f': case ' ': goto yy30; case '\n': case '\r': goto yy28; case '(': goto yy22; case ')': goto yy24; case '*': goto yy18; case '+': goto yy14; case ',': goto yy10; case '-': goto yy16; case '.': goto yy8; case '/': goto yy20; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy6; case ':': goto yy12; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy5; case 'd': goto yy2; case 'p': goto yy4; default: goto yy32; } yy2: ++YYCURSOR; switch ((yych = *YYCURSOR)) { case 'e': goto yy46; default: goto yy41; } yy3: #line 31 "LexerX.re" { return create_name_token(capture_string()); } #line 117 "<stdout>" yy4: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy42; default: goto yy41; } yy5: yych = *++YYCURSOR; goto yy41; yy6: yych = *(YYMARKER = ++YYCURSOR); goto yy39; yy7: #line 33 "LexerX.re" { return create_int_token(capture_int()); } #line 133 "<stdout>" yy8: ++YYCURSOR; switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy33; default: goto yy9; } yy9: #line 59 "LexerX.re" { printf( "Unrecognized character: %c\n", *(this->ccursor) ); continue; } #line 155 "<stdout>" yy10: ++YYCURSOR; #line 37 "LexerX.re" { return create_token(TOKEN_COMMA); } #line 160 "<stdout>" yy12: ++YYCURSOR; #line 39 "LexerX.re" { return create_token(TOKEN_COLON); } #line 165 "<stdout>" yy14: ++YYCURSOR; #line 41 "LexerX.re" { return create_token(TOKEN_ADD); } #line 170 "<stdout>" yy16: ++YYCURSOR; #line 43 "LexerX.re" { return create_token(TOKEN_SUB); } #line 175 "<stdout>" yy18: ++YYCURSOR; #line 45 "LexerX.re" { return create_token(TOKEN_MUL); } #line 180 "<stdout>" yy20: ++YYCURSOR; #line 47 "LexerX.re" { return create_token(TOKEN_DIV); } #line 185 "<stdout>" yy22: ++YYCURSOR; #line 49 "LexerX.re" { return create_token(TOKEN_LPAREN); } #line 190 "<stdout>" yy24: ++YYCURSOR; #line 51 "LexerX.re" { return create_token(TOKEN_RPAREN); } #line 195 "<stdout>" yy26: ++YYCURSOR; #line 53 "LexerX.re" { return create_token(TOKEN_EOF); } #line 200 "<stdout>" yy28: ++YYCURSOR; #line 55 "LexerX.re" { return emit_newline(); } #line 205 "<stdout>" yy30: ++YYCURSOR; #line 57 "LexerX.re" { continue; } #line 210 "<stdout>" yy32: yych = *++YYCURSOR; goto yy9; yy33: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); 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 yy33; default: goto yy35; } yy35: #line 35 "LexerX.re" { return create_float_token(capture_float()); } #line 234 "<stdout>" yy36: 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 yy33; default: goto yy37; } yy37: YYCURSOR = YYMARKER; goto yy7; yy38: YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; yy39: switch (yych) { case '.': goto yy36; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy38; default: goto yy7; } yy40: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy41: switch (yych) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy40; default: goto yy3; } yy42: yych = *++YYCURSOR; switch (yych) { case 's': goto yy43; default: goto yy41; } yy43: yych = *++YYCURSOR; switch (yych) { case 's': goto yy44; default: goto yy41; } yy44: ++YYCURSOR; switch ((yych = *YYCURSOR)) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy40; default: goto yy45; } yy45: #line 29 "LexerX.re" { return create_token(TOKEN_PASS); } #line 404 "<stdout>" yy46: yych = *++YYCURSOR; switch (yych) { case 'f': goto yy47; default: goto yy41; } yy47: ++YYCURSOR; switch ((yych = *YYCURSOR)) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy40; default: goto yy48; } yy48: #line 27 "LexerX.re" { return create_token(TOKEN_DEF); } #line 471 "<stdout>" } #line 63 "LexerX.re" } }