/[eiffelstudio]/vendor/gobosoft.com/gobo/4.0d/library/tools/src/eiffel/parser/et_eiffel_parser.y
ViewVC logotype

Diff of /vendor/gobosoft.com/gobo/4.0d/library/tools/src/eiffel/parser/et_eiffel_parser.y

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 98697 by manus, Sat May 7 16:18:26 2016 UTC revision 98698 by manus, Mon May 9 13:53:54 2016 UTC
# Line 6  note Line 6  note
6                  "Eiffel parsers"                  "Eiffel parsers"
7    
8          library: "Gobo Eiffel Tools Library"          library: "Gobo Eiffel Tools Library"
9          copyright: "Copyright (c) 1999-2014, Eric Bezault and others"          copyright: "Copyright (c) 1999-2016, Eric Bezault and others"
10          license: "MIT License"          license: "MIT License"
11          date: "$Date$"          date: "$Date$"
12          revision: "$Revision$"          revision: "$Revision$"
# Line 55  create Line 55  create
55  %token <detachable ET_SYMBOL> E_ASSIGN_SYMBOL E_REVERSE  %token <detachable ET_SYMBOL> E_ASSIGN_SYMBOL E_REVERSE
56  %token <detachable ET_POSITION> E_UNKNOWN  %token <detachable ET_POSITION> E_UNKNOWN
57    
 %token <detachable ET_BIT_CONSTANT> E_BIT  
58  %token <detachable ET_BOOLEAN_CONSTANT> E_FALSE E_TRUE  %token <detachable ET_BOOLEAN_CONSTANT> E_FALSE E_TRUE
59  %token <detachable ET_BREAK> E_BREAK  %token <detachable ET_BREAK> E_BREAK
60  %token <detachable ET_CHARACTER_CONSTANT> E_CHARACTER  %token <detachable ET_CHARACTER_CONSTANT> E_CHARACTER
61  %token <detachable ET_CURRENT> E_CURRENT  %token <detachable ET_CURRENT> E_CURRENT
62  %token <detachable ET_FREE_OPERATOR> E_FREEOP  %token <detachable ET_FREE_OPERATOR> E_FREEOP
63  %token <detachable ET_IDENTIFIER> E_IDENTIFIER E_BITTYPE E_TUPLE  %token <detachable ET_IDENTIFIER> E_IDENTIFIER E_TUPLE
64  %token <detachable ET_INTEGER_CONSTANT> E_INTEGER  %token <detachable ET_INTEGER_CONSTANT> E_INTEGER
65  %token <detachable ET_KEYWORD_OPERATOR> E_AND E_OR E_XOR E_NOT E_IMPLIES  %token <detachable ET_KEYWORD_OPERATOR> E_AND E_OR E_XOR E_NOT E_IMPLIES
66  %token <detachable ET_MANIFEST_STRING> E_STRPLUS E_STRMINUS E_STRSTAR E_STRSLASH E_STRDIV  %token <detachable ET_MANIFEST_STRING> E_STRPLUS E_STRMINUS E_STRSTAR E_STRSLASH E_STRDIV
# Line 513  Index_value: Identifier Line 512  Index_value: Identifier
512                  { $$ := $1 }                  { $$ := $1 }
513          | Manifest_string          | Manifest_string
514                  { $$ := $1 }                  { $$ := $1 }
         | E_BIT  
                 { $$ := $1 }  
515          | Create_expression E_END          | Create_expression E_END
516                  { $$ := ast_factory.new_custom_attribute ($1, Void, $2) }                  { $$ := ast_factory.new_custom_attribute ($1, Void, $2) }
517          | Create_expression Manifest_tuple E_END          | Create_expression Manifest_tuple E_END
# Line 786  Constraint_type: Class_name Constraint_a Line 783  Constraint_type: Class_name Constraint_a
783                  { $$ := new_constraint_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }                  { $$ := new_constraint_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }
784          | Anchored_type          | Anchored_type
785                  { $$ := $1 }                  { $$ := $1 }
         | E_BITTYPE Untyped_integer_constant  
                 { $$ := new_bit_n ($1, $2) }  
         | E_BITTYPE Identifier  
                 { $$ := new_bit_feature ($1, $2)  }  
786          | E_TUPLE Constraint_tuple_actual_parameters_opt          | E_TUPLE Constraint_tuple_actual_parameters_opt
787                  { $$ := new_constraint_named_type (Void, $1, $2) }                  { $$ := new_constraint_named_type (Void, $1, $2) }
788          | E_SEPARATE E_TUPLE Constraint_tuple_actual_parameters_opt          | E_SEPARATE E_TUPLE Constraint_tuple_actual_parameters_opt
# Line 838  Constraint_type_no_identifier: Class_nam Line 831  Constraint_type_no_identifier: Class_nam
831                  { $$ := new_constraint_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }                  { $$ := new_constraint_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }
832          | Anchored_type          | Anchored_type
833                  { $$ := $1 }                  { $$ := $1 }
         | E_BITTYPE Untyped_integer_constant  
                 { $$ := new_bit_n ($1, $2) }  
         | E_BITTYPE Identifier  
                 { $$ := new_bit_feature ($1, $2)  }  
834          | E_TUPLE Constraint_tuple_actual_parameters          | E_TUPLE Constraint_tuple_actual_parameters
835                  { $$ := new_constraint_named_type (Void, $1, $2) }                  { $$ := new_constraint_named_type (Void, $1, $2) }
836          | E_SEPARATE E_TUPLE Constraint_tuple_actual_parameters_opt          | E_SEPARATE E_TUPLE Constraint_tuple_actual_parameters_opt
# Line 978  Constraint_tuple_labeled_actual_paramete Line 967  Constraint_tuple_labeled_actual_paramete
967                                  end                                  end
968                          end                          end
969                  }                  }
         | E_BITTYPE ',' Increment_counter Constraint_tuple_labeled_actual_parameter_list  
                 {  
                         $$ := $4  
                         if $$ /= Void then  
                                 if not $$.is_empty then  
                                         add_to_constraint_actual_parameter_list (ast_factory.new_constraint_labeled_comma_actual_parameter ($1, $2, $$.first.type), $$)  
                                 else  
                                         add_to_constraint_actual_parameter_list (ast_factory.new_constraint_labeled_comma_actual_parameter ($1, $2, Void), $$)  
                                 end  
                         end  
                 }  
970          ;          ;
971    
972  Constraint_tuple_labeled_actual_parameter: Identifier ':' Constraint_type  Constraint_tuple_labeled_actual_parameter: Identifier ':' Constraint_type
# Line 2596  Type_no_class_name: Class_name Actual_pa Line 2574  Type_no_class_name: Class_name Actual_pa
2574                  { $$ := new_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }                  { $$ := new_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }
2575          | Anchored_type          | Anchored_type
2576                  { $$ := $1 }                  { $$ := $1 }
         | E_BITTYPE Untyped_integer_constant  
                 { $$ := new_bit_n ($1, $2) }  
         | E_BITTYPE Identifier  
                 { $$ := new_bit_feature ($1, $2)  }  
2577          | E_TUPLE Tuple_actual_parameters_opt          | E_TUPLE Tuple_actual_parameters_opt
2578                  { $$ := new_tuple_type (Void, $1, $2) }                  { $$ := new_tuple_type (Void, $1, $2) }
2579          | E_SEPARATE E_TUPLE Tuple_actual_parameters_opt          | E_SEPARATE E_TUPLE Tuple_actual_parameters_opt
# Line 2648  Type_no_identifier: Class_name Actual_pa Line 2622  Type_no_identifier: Class_name Actual_pa
2622                  { $$ := new_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }                  { $$ := new_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }
2623          | Anchored_type          | Anchored_type
2624                  { $$ := $1 }                  { $$ := $1 }
         | E_BITTYPE Untyped_integer_constant  
                 { $$ := new_bit_n ($1, $2) }  
         | E_BITTYPE Identifier  
                 { $$ := new_bit_feature ($1, $2)  }  
2625          | E_TUPLE Tuple_actual_parameters          | E_TUPLE Tuple_actual_parameters
2626                  { $$ := new_tuple_type (Void, $1, $2) }                  { $$ := new_tuple_type (Void, $1, $2) }
2627          | E_SEPARATE E_TUPLE Tuple_actual_parameters_opt          | E_SEPARATE E_TUPLE Tuple_actual_parameters_opt
# Line 2702  Type_no_bang_identifier: Class_name Line 2672  Type_no_bang_identifier: Class_name
2672                  { $$ := new_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }                  { $$ := new_named_type (ast_factory.new_attachment_symbol_separate_keyword ($1, $2), $3, $4) }
2673          | Anchored_type          | Anchored_type
2674                  { $$ := $1 }                  { $$ := $1 }
         | E_BITTYPE Untyped_integer_constant  
                 { $$ := new_bit_n ($1, $2) }  
         | E_BITTYPE Identifier  
                 { $$ := new_bit_feature ($1, $2)  }  
2675          | E_TUPLE Tuple_actual_parameters_opt          | E_TUPLE Tuple_actual_parameters_opt
2676                  { $$ := new_tuple_type (Void, $1, $2) }                  { $$ := new_tuple_type (Void, $1, $2) }
2677          | E_SEPARATE E_TUPLE Tuple_actual_parameters_opt          | E_SEPARATE E_TUPLE Tuple_actual_parameters_opt
# Line 2859  Tuple_labeled_actual_parameter_list: Ide Line 2825  Tuple_labeled_actual_parameter_list: Ide
2825                                  end                                  end
2826                          end                          end
2827                  }                  }
         | E_BITTYPE ',' Increment_counter Tuple_labeled_actual_parameter_list  
                 {  
                         $$ := $4  
                         if $$ /= Void then  
                                 if not $$.is_empty then  
                                         add_to_actual_parameter_list (ast_factory.new_labeled_comma_actual_parameter (ast_factory.new_label_comma ($1, $2), $$.first.type), $$)  
                                 else  
                                         add_to_actual_parameter_list (ast_factory.new_labeled_comma_actual_parameter (ast_factory.new_label_comma ($1, $2), Void), $$)  
                                 end  
                         end  
                 }  
2828          ;          ;
2829    
2830  Tuple_labeled_actual_parameter: Identifier ':' Type  Tuple_labeled_actual_parameter: Identifier ':' Type
# Line 3852  Untyped_bracket_target: Untyped_call_exp Line 3807  Untyped_bracket_target: Untyped_call_exp
3807  --      end  --      end
3808  --  --
3809                  { $$ := new_once_manifest_string ($1, $2) }                  { $$ := new_once_manifest_string ($1, $2) }
         | E_BIT  
                 { $$ := $1 }  
3810          | Manifest_array          | Manifest_array
3811                  { $$ := $1 }                  { $$ := $1 }
3812          | Strip_expression          | Strip_expression
# Line 4079  Manifest_constant: Boolean_constant Line 4032  Manifest_constant: Boolean_constant
4032                  { $$ := $1 }                  { $$ := $1 }
4033          | Manifest_string          | Manifest_string
4034                  { $$ := $1 }                  { $$ := $1 }
         | E_BIT  
                 { $$ := $1 }  
4035          ;          ;
4036    
4037  Across_some_expression: Across_expression_header Loop_invariant_clause_opt Until_expression_opt E_SOME Expression Variant_clause_opt E_END  Across_some_expression: Across_expression_header Loop_invariant_clause_opt Until_expression_opt E_SOME Expression Variant_clause_opt E_END
# Line 4444  Identifier: E_IDENTIFIER Line 4395  Identifier: E_IDENTIFIER
4395                  { $$ := $1 }                  { $$ := $1 }
4396          | E_TUPLE          | E_TUPLE
4397                  { $$ := $1 }                  { $$ := $1 }
         | E_BITTYPE  
                 {  
                                 -- TO DO: reserved word `BIT'  
                         $$ := $1  
                 }  
4398          ;          ;
4399    
4400  ------------------------------------------------------------------------------------  ------------------------------------------------------------------------------------

Legend:
Removed from v.98697  
changed lines
  Added in v.98698

  ViewVC Help
Powered by ViewVC 1.1.23