%eofval}
-Ident = [a-zA-Z$_] [a-zA-Z0-9$_]*
+Ident = [a-zA-Z$_] [a-zA-Z0-9$_\[\]]*
new_line = \r|\n|\r\n;
<YYINITIAL>{
/* keywords */
-"int" { return symbol("int",TYPE, "INT" ); }
-"short" { return symbol("short",TYPE, "SHORT" ); }
-"byte" { return symbol("byte",TYPE, "BYTE" ); }
-"long" { return symbol("long",TYPE, "LONG" ); }
-"float" { return symbol("float",TYPE, "FLOAT" ); }
-"double" { return symbol("double",TYPE, "DOUBLE" ); }
-"char" { return symbol("char",TYPE, "CHAR" ); }
-"string" { return symbol("string",TYPE, "STRING" ); }
-"boolean" { return symbol("boolean",TYPE, "BOOL" ); }
-"void" { return symbol("void",TYPE, "VOID" ); }
+"int" { return symbol("int",TYPE, "int" ); }
+"short" { return symbol("short",TYPE, "short" ); }
+"byte" { return symbol("byte",TYPE, "byte" ); }
+"long" { return symbol("long",TYPE, "long" ); }
+"float" { return symbol("float",TYPE, "float" ); }
+"double" { return symbol("double",TYPE, "double" ); }
+"char" { return symbol("char",TYPE, "char" ); }
+"string" { return symbol("string",TYPE, "String" ); }
+"String" { return symbol("String",TYPE, "String" ); }
+"boolean" { return symbol("boolean",TYPE, "boolean" ); }
+"void" { return symbol("void",TYPE, "void" ); }
"public" { return symbol("public",PUBLIC); }
"interface" { return symbol("interface",INTERFACE); }
"capability" { return symbol("capability",CAPABILITY); }
"requires" { return symbol("requires",REQUIRES); }
"with" { return symbol("with",WITH); }
"as" { return symbol("as",AS); }
+"enum" { return symbol("enum",ENUM); }
+"struct" { return symbol("struct",STRUCT); }
/* names */
{Ident} { return symbol("Identifier",IDENT, yytext()); }
\" { string.setLength(0); yybegin(STRING); }
";" { return symbol("semicolon",SEMICOLON); }
"," { return symbol("comma",COMMA); }
-"." { return symbol("dot",DOT); }
"(" { return symbol("(",LPAR); }
")" { return symbol(")",RPAR); }
+"<" { return symbol("<",LANG); }
+">" { return symbol(">",RANG); }
"{" { return symbol("{",BEGIN); }
"}" { return symbol("}",END); }
"=" { return symbol("=",ASSIGN); }