Hi thierry
I imported the generated parsers (a student did a while ago on VW using Smacc). The generated parser parse apparently the tests. Now when I regenerate the parser with Pharo I cannot get the Smacc compuling the parser. I get a SmaCCParserError: Token not expected do you have any idea what would not be supported in the Pharo/Squeak version # # Expression Parser #============================================= goal: expression* ; expression: relation ( ( and | and then | or | or else | xor ) relation )*; relation: simple_expression sndPart?; sndPart: relational_operator simple_expression | ( not )? ( in range | in type_mark); simple_expression: (unary_adding_operator)? term (binary_adding_operator term)*; term: factor (multiplying_operator factor)*; factor: primary ( ** primary)? | abs primary | not primary; #<identifier> instead of name primary: <numeric_lit> | null | <string_lit> | <number> | <identifier> | <identifier> '' <identifier> | function_call | ( expression ) ; #simplified binary_adding_operator: + | - | & ; unary_adding_operator: + | - ; multiplying_operator: * | / | mod | rem ; relational_operator: = | /= | < | <= | > | >= ; #============================================================================= function_call: <identifier> ''identifier'' function_arguments ''args'' { ADFunctionCall withElements: args withName: identifier } ; function_arguments: ( expression ( , expression)* ) ; #==== Declarations =========================================================== discrete_range: range | subtype_indication; #discrete_? subtype_indication: type_mark (constraint)? ; type_mark: type; constraint: range_constraint; range_constraint: range range; range: range_attribute | (simple_expression .. simple_expression); range_attribute: <identifier> '' range ; #cf. 4.1.4 #==== Names ================================================================== name: simple_name | <char_lit> | indexed_component | slice | selected_component | attribute; #operator_symbol prefix: name | function_call; simple_name: <identifier>; indexed_component: prefix ( expression ( , expression )* ) ; slice: prefix ( discrete_range ) ; selected_component: prefix . selector; selector: simple_name | <char_lit> | all ; #operator_symbol attribute: prefix '' attribute_designator; attribute_designator: simple_name ( ( <universal_static_expression> ) )? ; #==== Types: appendix c: package STANDARD plus more ========================================================= type: BOOLEAN | REAL | INTEGER | FLOAT | CHARACTER | DURATION | STRING | RAINBOW ; ' _______________________________________________ Moose-dev mailing list [hidden email] https://www.iam.unibe.ch/mailman/listinfo/moose-dev |
apparently the fileout 30 in VW corrupts the image and I got many strange definitions so I'm checking
Stef On Sep 2, 2013, at 12:18 PM, Stéphane Ducasse <[hidden email]> wrote: > Hi thierry > > I imported the generated parsers (a student did a while ago on VW using Smacc). > The generated parser parse apparently the tests. > Now when I regenerate the parser with Pharo I cannot get the Smacc compuling the parser. > I get a SmaCCParserError: Token not expected > > do you have any idea what would not be supported in the Pharo/Squeak version > > > # > # Expression Parser > #============================================= > > goal: expression* ; > > expression: relation > ( ( > and > | > and then > | > or > | > or else > | > xor > ) relation )*; > > relation: simple_expression > sndPart?; > > sndPart: relational_operator simple_expression | > ( > not > )? ( > in range > | > in > type_mark); > > simple_expression: (unary_adding_operator)? > term (binary_adding_operator term)*; > > term: factor (multiplying_operator factor)*; > > factor: primary ( > ** > primary)? | > abs > primary | > not > primary; > > #<identifier> instead of name > primary: <numeric_lit> | > null > | <string_lit> | <number> | > <identifier> | <identifier> > '' > <identifier> | > function_call | > ( > expression > ) > ; > #simplified > > binary_adding_operator: > + > | > - > | > & > ; > unary_adding_operator: > + > | > - > ; > multiplying_operator: > * > | > / > | > mod > | > rem > ; > relational_operator: > = > | > /= > | > < > | > <= > | > > > | > >= > ; > > #============================================================================= > > function_call: <identifier> ''identifier'' function_arguments ''args'' > { ADFunctionCall withElements: args withName: identifier } ; > > function_arguments: > ( > expression ( > , > expression)* > ) > ; > > #==== Declarations =========================================================== > > discrete_range: range | subtype_indication; #discrete_? > > subtype_indication: type_mark (constraint)? ; > > type_mark: type; > > constraint: range_constraint; > > range_constraint: > range > range; > > range: range_attribute | (simple_expression > .. > simple_expression); > > range_attribute: <identifier> > '' > > range > ; #cf. 4.1.4 > > #==== Names ================================================================== > > name: simple_name | <char_lit> | > indexed_component | > slice | selected_component | > attribute; #operator_symbol > > prefix: name | function_call; > > simple_name: <identifier>; > > indexed_component: prefix > ( > expression ( > , > expression )* > ) > ; > > slice: prefix > ( > discrete_range > ) > ; > > selected_component: prefix > . > selector; > > selector: simple_name | <char_lit> | > > all > ; #operator_symbol > > attribute: prefix > '' > attribute_designator; > > attribute_designator: simple_name ( > ( > <universal_static_expression> > ) > )? ; > > #==== Types: appendix c: package STANDARD plus more ========================================================= > type: > BOOLEAN > | > REAL > | > INTEGER > | > FLOAT > | > CHARACTER > | > DURATION > | > > STRING > | > RAINBOW > ; > > ' _______________________________________________ Moose-dev mailing list [hidden email] https://www.iam.unibe.ch/mailman/listinfo/moose-dev |
Free forum by Nabble | Edit this page |