]> gitweb.factorcode.org Git - factor.git/commitdiff
smalltalk: Clean up grammar and fix a bug with underscores in identifiers.
authorDoug Coleman <doug.coleman@gmail.com>
Wed, 30 Mar 2016 15:49:28 +0000 (08:49 -0700)
committerDoug Coleman <doug.coleman@gmail.com>
Wed, 30 Mar 2016 17:16:15 +0000 (10:16 -0700)
extra/smalltalk/parser/parser-tests.factor
extra/smalltalk/parser/parser.factor

index 5fd3d57857e599880630f2176db87305f4121db1..7588dfba2403dc23162b4871467f1da65424226e 100644 (file)
@@ -298,3 +298,5 @@ test         = <foreign parse-smalltalk LocalVariableDeclarationList>
 { } [ "class Foo []. Tests blah " parse-smalltalk drop ] unit-test
 
 { } [ "vocab:smalltalk/parser/test.st" ascii file-contents parse-smalltalk drop ] unit-test
+
+{ } [ "_abc_" parse-smalltalk drop ] unit-test
index 6de20afc6d33aaff1713ce2fbce4b07ccd33de73..892f2e4ad836fdb79b16a2a421b321657d69b2c0 100644 (file)
@@ -16,7 +16,7 @@ ERROR: bad-number str ;
 EBNF: parse-smalltalk
 
 Character = .
-WhitespaceCharacter = (" " | "\t" | "\n" | "\r" )
+WhitespaceCharacter = [ \t\n\r]
 DecimalDigit = [0-9]
 Letter = [A-Za-z]
 
@@ -27,7 +27,7 @@ OptionalWhiteSpace = (WhitespaceCharacter | Comment)*
 Whitespace = (WhitespaceCharacter | Comment)+
 
 LetterOrDigit = DecimalDigit | Letter
-Identifier = (Letter | "_"):h (LetterOrDigit | "_")*:t => [[ { h t } flatten >string ]]
+Identifier = (Letter | [_]):h (LetterOrDigit | [_])*:t => [[ { h t } flatten >string ]]
 Reference = Identifier => [[ ast-name boa ]]
 
 ConstantReference =   "nil" => [[ nil ]]