1 Package org.simantics.basicexpression;
\r
4 letter = [[['A'..'Z'] + ['a'..'z']] + '_'];
\r
8 not_cr_lf = [[32..255] - [cr + lf]];
\r
10 harmless_char = [[32..255] - [''' + ['"' + '\']]];
\r
12 sq_str_char = harmless_char | '"';
\r
13 dq_str_char = harmless_char | ''';
\r
15 sq_str_char_sequence = sq_str_char+;
\r
16 dq_str_char_sequence = dq_str_char+;
\r
18 single_quote_string = ''' sq_str_char_sequence? ''';
\r
19 double_quote_string = '"' dq_str_char_sequence? '"';
\r
38 variable = letter (letter | digit)*;
\r
39 func = letter (letter | digit)* '(';
\r
40 cell = '_'? letter+ digit+;
\r
41 rvi = ('.')* ('/' | '#') ('/' | '#' | '.' | letter | digit | '_')*;
\r
42 number = digit+ '.'* digit*;
\r
43 string = single_quote_string | double_quote_string;
\r
45 new_line = cr | lf | cr lf;
\r
55 {mult} multiplicative |
\r
56 {plus} [left]:expression plus [right]:multiplicative |
\r
57 {minus} expression minus multiplicative;
\r
61 {mult} [left]:multiplicative mult [right]:unary |
\r
62 {div} [left]:multiplicative div [right]:unary;
\r
66 {unaryplus} plus unary |
\r
67 {unaryminus} minus unary;
\r
70 {single} expression |
\r
71 {sequence} arg_list comma expression;
\r
75 {variable} variable |
\r
76 {function} func arg_list? r_par;
\r
80 {multi} [left]:cell colon [right]:cell;
\r
87 {address} ampersand range |
\r
88 {expr} l_par expression r_par;
\r