33 lines
681 B
Text
33 lines
681 B
Text
oscript {
|
|
%whitespace "[ \t\r\n]*";
|
|
|
|
scope:
|
|
'{' statements '}' [scope]
|
|
| ;
|
|
|
|
statements:
|
|
statements ';' statement ';' [stm_scope_append]
|
|
| statement [stm_scope_create]
|
|
| ;
|
|
|
|
statement:
|
|
statementVar [tmp]
|
|
| statementLog [tmp];
|
|
|
|
statementVar: 'var' id [stm_defVar];
|
|
statementLog: 'print' value [stm_log];
|
|
|
|
value:
|
|
boolean [expr_bool]
|
|
| integer [expr_int]
|
|
| real [expr_float]
|
|
| string [expr_string]
|
|
|
|
|
;
|
|
|
|
id: "[a-z]";
|
|
boolean: "true|false";
|
|
integer: "(\+|\-)?[0-9]+";
|
|
real: "(\+|\-)?[0-9]+(\.[0-9]+)?((e|E)(\+|\-)?[0-9]+)?";
|
|
string: "[\"']:string:";
|
|
}
|