]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.basicexpression/src/expression.sablecc3
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.basicexpression / src / expression.sablecc3
index c9d6bca7f1789cae6f54c558da796afe2a9f0c95..eba68df60ac77d384c4d6f6059253a5cc8ba9487 100644 (file)
@@ -1,88 +1,88 @@
-Package org.simantics.basicexpression;\r
-\r
-Helpers\r
-  letter = [[['A'..'Z'] + ['a'..'z']] + '_'];\r
-  digit = ['0'..'9'];\r
-  cr = 13;\r
-  lf = 10;\r
-  not_cr_lf = [[32..255] - [cr + lf]];\r
-  \r
-  harmless_char = [[32..255] - [''' + ['"' + '\']]];\r
-\r
-  sq_str_char = harmless_char | '"';\r
-  dq_str_char = harmless_char | ''';\r
-\r
-  sq_str_char_sequence = sq_str_char+;\r
-  dq_str_char_sequence = dq_str_char+;\r
-\r
-  single_quote_string = ''' sq_str_char_sequence? ''';\r
-  double_quote_string = '"' dq_str_char_sequence? '"';\r
\r
-Tokens\r
-  less_than = '<';\r
-  greater_than = '>';\r
-  equal = '=';\r
-\r
-  plus = '+';\r
-  minus = '-';\r
-  mult = '*';\r
-  div = '/';\r
-  ampersand = '&';\r
-\r
-  comma = ',';\r
-  colon = ':';\r
-  \r
-  l_par = '(';\r
-  r_par = ')';\r
-\r
-  variable = letter (letter | digit)*;\r
-  func = letter (letter | digit)* '(';\r
-  cell = '_'? letter+ digit+;\r
-  rvi = ('.')* ('/' | '#') ('/' | '#' | '.' | letter | digit | '_')*;\r
-  number = digit+ '.'* digit*;\r
-  string = single_quote_string | double_quote_string;  \r
-\r
-  new_line = cr | lf | cr lf;\r
-\r
-  blank = ' '*;\r
-\r
-Ignored Tokens\r
-  blank;\r
-\r
-Productions\r
-\r
-  expression =\r
-    {mult} multiplicative |\r
-    {plus} [left]:expression plus [right]:multiplicative |\r
-       {minus} expression minus multiplicative;\r
-\r
-  multiplicative =\r
-    {unary} unary |\r
-       {mult} [left]:multiplicative mult [right]:unary |\r
-       {div} [left]:multiplicative div [right]:unary;\r
-\r
-  unary =\r
-       {primary} primary |\r
-       {unaryplus} plus unary |\r
-       {unaryminus} minus unary;\r
-\r
-  arg_list = \r
-    {single} expression |\r
-    {sequence} arg_list comma expression;\r
-\r
-  primary =    \r
-       {value} value |\r
-       {variable} variable |\r
-    {function} func arg_list? r_par;\r
-       \r
-  range =\r
-    {single} cell |\r
-    {multi} [left]:cell colon [right]:cell;\r
-       \r
-  value =\r
-    {rvi} rvi |\r
-    {string} string |\r
-    {constant} number |\r
-    {range} range |\r
-    {address} ampersand range |\r
-    {expr} l_par expression r_par;\r
+Package org.simantics.basicexpression;
+
+Helpers
+  letter = [[['A'..'Z'] + ['a'..'z']] + '_'];
+  digit = ['0'..'9'];
+  cr = 13;
+  lf = 10;
+  not_cr_lf = [[32..255] - [cr + lf]];
+  
+  harmless_char = [[32..255] - [''' + ['"' + '\']]];
+
+  sq_str_char = harmless_char | '"';
+  dq_str_char = harmless_char | ''';
+
+  sq_str_char_sequence = sq_str_char+;
+  dq_str_char_sequence = dq_str_char+;
+
+  single_quote_string = ''' sq_str_char_sequence? ''';
+  double_quote_string = '"' dq_str_char_sequence? '"';
+Tokens
+  less_than = '<';
+  greater_than = '>';
+  equal = '=';
+
+  plus = '+';
+  minus = '-';
+  mult = '*';
+  div = '/';
+  ampersand = '&';
+
+  comma = ',';
+  colon = ':';
+  
+  l_par = '(';
+  r_par = ')';
+
+  variable = letter (letter | digit)*;
+  func = letter (letter | digit)* '(';
+  cell = '_'? letter+ digit+;
+  rvi = ('.')* ('/' | '#') ('/' | '#' | '.' | letter | digit | '_')*;
+  number = digit+ '.'* digit*;
+  string = single_quote_string | double_quote_string;  
+
+  new_line = cr | lf | cr lf;
+
+  blank = ' '*;
+
+Ignored Tokens
+  blank;
+
+Productions
+
+  expression =
+    {mult} multiplicative |
+    {plus} [left]:expression plus [right]:multiplicative |
+       {minus} expression minus multiplicative;
+
+  multiplicative =
+    {unary} unary |
+       {mult} [left]:multiplicative mult [right]:unary |
+       {div} [left]:multiplicative div [right]:unary;
+
+  unary =
+       {primary} primary |
+       {unaryplus} plus unary |
+       {unaryminus} minus unary;
+
+  arg_list = 
+    {single} expression |
+    {sequence} arg_list comma expression;
+
+  primary =    
+       {value} value |
+       {variable} variable |
+    {function} func arg_list? r_par;
+       
+  range =
+    {single} cell |
+    {multi} [left]:cell colon [right]:cell;
+       
+  value =
+    {rvi} rvi |
+    {string} string |
+    {constant} number |
+    {range} range |
+    {address} ampersand range |
+    {expr} l_par expression r_par;