/* WHITE SPACE (Always Skipped) */
|
<DEFAULT> SKIP : {
" "
| "\t"
| "\n"
| "\r"
| "\f"
}
|
/* COMMENTS (Default is Skip) */
|
<DEFAULT> SPECIAL : {
<SINGLE_LINE_COMMENT: "%" (~["\n","\r"])* ("\n" | "\r" | "\r\n")>
}
|
/* LITERALS */
// string_literal \"[^"\n]*\"
|
<DEFAULT> TOKEN : {
<STRING_LITERAL: "\"" (~["\n","\r","\f"])* "\"">
}
|
// int_literal -?[0-9]+|-?0x[0-9A-Fa-f]+|-?0o[0-7]+
|
<DEFAULT> TOKEN : {
<INT_LITERAL: (["-"])? (["0"-"9"])+ | (["-"])? "0x" (["0"-"9","A"-"F","a"-"f"])+ | (["-"])? "0o" (["0"-"7"])+>
}
|
//float_literal -?[0-9]+\.[0-9]+|-?[0-9]+\.[0-9]+[Ee][-+]?[0-9]+|-?[0-9]+[Ee][-+]?[0-9]+
|
<DEFAULT> TOKEN : {
<FLOAT_LITERAL: ("-")? (["0"-"9"])+ "." (["0"-"9"])+ | ("-")? (["0"-"9"])+ "." (["0"-"9"])+ ("E" | "e") ("-" | "+")? (["0"-"9"])+ | ("-")? (["0"-"9"])+ ("E" | "e") ("-" | "+")? (["0"-"9"])+>
}
|
/* SEPARATORS */
|
<DEFAULT> TOKEN : {
<SC: ";">
| <COLON: ":">
| <COMMA: ",">
}
|
/* DELIMETERS */
|
<DEFAULT> TOKEN : {
<LP: "(">
| <RP: ")">
| <LBOX: "[">
| <RBOX: "]">
| <LB: "{">
| <RB: "}">
}
|
/* OPERATORS */
|
<DEFAULT> TOKEN : {
<ASGN: "=">
}
|
/* Reserved words */
|
<DEFAULT> TOKEN : {
<ARRAY: "array">
| <BOOL: "bool">
| <CONSTRAINT: "constraint">
| <FALSE: "false">
| <FLOAT: "float">
| <INT: "int">
| <MINIMIZE: "minimize">
| <MAXIMIZE: "maximize">
| <OF: "of">
| <OUTPUT: "output">
| <PREDICATE: "predicate">
| <SATISFY: "satisfy">
| <SET: "set">
| <SHOW: "show">
| <SHOW_COND: "show_cond">
| <SOLVE: "solve">
| <TRUE: "true">
| <VAR: "var">
| <DOTDOT: "..">
| <COLONCOLON: "::">
}
|
/* IDENTIFIER */
// ident [A-Za-z][A-Za-z0-9_]*
|
<DEFAULT> TOKEN : {
<IDENT: ["a"-"z","A"-"Z"] (["a"-"z","A"-"Z","0"-"9","_"])*>
}
|