I will check because may be the author of the code committed code that does not 
compile on VW either.
Thanks for your hints.

stef

On Sep 2, 2013, at 12:57 PM, Goubier Thierry <[email protected]> wrote:

> Hi Stef,
> 
> I don't see unsupported syntax, just missing quotes around some tokens, such 
> as
> ** should be "**", + should be "+" in binary_adding_operator, etc...
> BOOLEAN is probably <BOOLEAN>
> 
> Are you sure that the text you're joining isn't unquoted? It's hard to 
> requote everything as it should be, and not having the lexer definition makes 
> testing with SmaCC a bit painfull.
> 
> Thierry
> 
> Le 02/09/2013 12:18, Stéphane Ducasse a écrit :
>> 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
>>       ;
>>      
>>      '
>> 
>> 
> 
> -- 
> Thierry Goubier
> CEA list
> Laboratoire des Fondations des Systèmes Temps Réel Embarqués
> 91191 Gif sur Yvette Cedex
> France
> Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
> 


Reply via email to