Bladeren bron

Can have symbols for binary selectors.

They work #-less inside literal array, too.
Herbert Vojčík 12 jaren geleden
bovenliggende
commit
ea33b05f3f
2 gewijzigde bestanden met toevoegingen van 10 en 7 verwijderingen
  1. 9 6
      js/parser.js
  2. 1 1
      js/parser.pegjs

+ 9 - 6
js/parser.js

@@ -903,13 +903,16 @@ smalltalk.parser = (function(){
         pos0 = clone(pos);
         result0 = parse_selector();
         if (result0 === null) {
-          pos1 = clone(pos);
-          result0 = parse_string();
-          if (result0 !== null) {
-            result0 = (function(offset, line, column, node) {return node._value()})(pos1.offset, pos1.line, pos1.column, result0);
-          }
+          result0 = parse_binarySelector();
           if (result0 === null) {
-            pos = clone(pos1);
+            pos1 = clone(pos);
+            result0 = parse_string();
+            if (result0 !== null) {
+              result0 = (function(offset, line, column, node) {return node._value()})(pos1.offset, pos1.line, pos1.column, result0);
+            }
+            if (result0 === null) {
+              pos = clone(pos1);
+            }
           }
         }
         if (result0 !== null) {

+ 1 - 1
js/parser.pegjs

@@ -14,7 +14,7 @@ string         = ['] val:(("''" {return "'"} / [^'])*) ['] {
                  }
 
 symbol         = "#" rest:bareSymbol {return rest}
-bareSymbol         = val:(selector / node:string {return node._value()})
+bareSymbol         = val:(selector / binarySelector / node:string {return node._value()})
                   {
                       return smalltalk.ValueNode._new()
                              ._value_(val)