%{ #include using namespace std; #define YYSTYPE string #include "stdio.h" #include "syntatic.h" string strval; int intval; %} integer [0-9]+ identifier [A-Za-z][0-9A-Za-z]* specialchar [!"#%&*()_+'./\:<>?^|-] %% "SIMULATION" { printf("SIMULATION\n"); return SIMULATION; } "MODEL" { printf("MODEL\n"); return MODEL; } "AGENT" { printf("AGENT\n"); return AGENT; } "STATE" { printf("STATE\n"); return STATE; } "TICK" { printf("TICK\n"); return TICK; } "$GETMESSAGE" { printf("GETMESSAGE\n"); return GETMESSAGE; } "$POSTMESSAGE" { printf("POSTMESSAGE\n"); return POSTMESSAGE; } "=" { printf("=\n"); return EQ; } "{" { printf("{\n"); return BEGINBLOCK; } "}" { printf("}\n"); return ENDBLOCK; } "[" { printf("[\n"); return OPENBRACES; } "]" { printf("]\n"); return CLOSEBRACES; } ";" { printf(";\n"); return SEMICOLON; } "," { printf(",\n"); return COMMA; } "@" { printf("@\n"); return AT; } "§" { printf("§\n"); return SPACE; } {integer} { yylval = yytext; printf("integer: %s\n", yytext); return INTEGER; } {identifier} { yylval = yytext; printf("identifier: %s\n", yytext); return IDENTIFIER; } {specialchar} { yylval = yytext; printf("special: %s\n", yytext); return SPECIALCHAR; } [ \t\n]+ { printf("spaces\n"); } . { printf("unrecognized\n"); return yytext[0]; } %% int getIntVal() { return intval; } string getStrVal() { return strval; }