php5 syntax
This commit is contained in:
		
							parent
							
								
									1ffa0fce5f
								
							
						
					
					
						commit
						1f448dade7
					
				
							
								
								
									
										865
									
								
								php5/php5.go
									
									
									
									
									
								
							
							
						
						
									
										865
									
								
								php5/php5.go
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										131
									
								
								php5/php5.y
									
									
									
									
									
								
							
							
						
						
									
										131
									
								
								php5/php5.y
									
									
									
									
									
								
							| @ -218,7 +218,7 @@ import ( | ||||
| %type <list> non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list implements_list | ||||
| %type <list> class_statement_list variable_modifiers method_modifiers class_variable_declaration interface_extends_list | ||||
| %type <list> interface_list non_empty_function_call_parameter_list trait_list trait_adaptation_list non_empty_trait_adaptation_list | ||||
| %type <list> trait_reference_list | ||||
| %type <list> trait_reference_list non_empty_member_modifiers | ||||
| 
 | ||||
| 
 | ||||
| %type <simpleIndirectReference> simple_indirect_reference | ||||
| @ -1565,23 +1565,37 @@ trait_modifiers: | ||||
| ; | ||||
| 
 | ||||
| method_body: | ||||
|         ';' /* abstract method */       {  } | ||||
|     |   '{' inner_statement_list '}'    {  } | ||||
|         ';' /* abstract method */ | ||||
|             { $$ = &nodesWithEndToken{nil, $1} } | ||||
|     |   '{' inner_statement_list '}' | ||||
|             { $$ = &nodesWithEndToken{$2, $3} } | ||||
| ; | ||||
| 
 | ||||
| variable_modifiers: | ||||
|         non_empty_member_modifiers      {  } | ||||
|     |   T_VAR                           {  } | ||||
|         non_empty_member_modifiers | ||||
|             { $$ = $1; } | ||||
|     |   T_VAR | ||||
|             { | ||||
|                 modifier := node.NewIdentifier($1.Value) | ||||
|                 positions.AddPosition(modifier, positionBuilder.NewTokenPosition($1)) | ||||
|                 comments.AddComments(modifier, $1.Comments()) | ||||
|                  | ||||
|                 $$ = []node.Node{modifier} | ||||
|             } | ||||
| ; | ||||
| 
 | ||||
| method_modifiers: | ||||
|         /* empty */                         {  } | ||||
|     |   non_empty_member_modifiers          {  } | ||||
|         /* empty */ | ||||
|             { $$ = nil } | ||||
|     |   non_empty_member_modifiers | ||||
|             { $$ = $1 } | ||||
| ; | ||||
| 
 | ||||
| non_empty_member_modifiers: | ||||
|         member_modifier                     {  } | ||||
|     |   non_empty_member_modifiers member_modifier  {  } | ||||
|         member_modifier | ||||
|             { $$ = []node.Node{$1} } | ||||
|     |   non_empty_member_modifiers member_modifier | ||||
|             { $$ = append($1, $2) } | ||||
| ; | ||||
| 
 | ||||
| member_modifier: | ||||
| @ -1624,15 +1638,102 @@ member_modifier: | ||||
| ; | ||||
| 
 | ||||
| class_variable_declaration: | ||||
|         class_variable_declaration ',' T_VARIABLE                   {  } | ||||
|     |   class_variable_declaration ',' T_VARIABLE '=' static_scalar {  } | ||||
|     |   T_VARIABLE                      {  } | ||||
|     |   T_VARIABLE '=' static_scalar    {  } | ||||
|         class_variable_declaration ',' T_VARIABLE | ||||
|             { | ||||
|                 identifier := node.NewIdentifier($3.Value) | ||||
|                 positions.AddPosition(identifier, positionBuilder.NewTokenPosition($3)) | ||||
|                 comments.AddComments(identifier, $3.Comments()) | ||||
|                  | ||||
|                 variable := expr.NewVariable(identifier) | ||||
|                 positions.AddPosition(variable, positionBuilder.NewTokenPosition($3)) | ||||
|                 comments.AddComments(variable, $3.Comments()) | ||||
|                  | ||||
|                 property := stmt.NewProperty(variable, nil, "") | ||||
|                 positions.AddPosition(property, positionBuilder.NewTokenPosition($3)) | ||||
|                 comments.AddComments(property, $3.Comments()) | ||||
| 
 | ||||
|                 $$ = append($1, property) | ||||
|             } | ||||
|     |   class_variable_declaration ',' T_VARIABLE '=' static_scalar | ||||
|             { | ||||
|                 identifier := node.NewIdentifier($3.Value) | ||||
|                 positions.AddPosition(identifier, positionBuilder.NewTokenPosition($3)) | ||||
|                 comments.AddComments(identifier, $3.Comments()) | ||||
|                  | ||||
|                 variable := expr.NewVariable(identifier) | ||||
|                 positions.AddPosition(variable, positionBuilder.NewTokenPosition($3)) | ||||
|                 comments.AddComments(variable, $3.Comments()) | ||||
|                  | ||||
|                 property := stmt.NewProperty(variable, $5, "") | ||||
|                 positions.AddPosition(property, positionBuilder.NewTokenNodePosition($3, $5)) | ||||
|                 comments.AddComments(property, $3.Comments()) | ||||
| 
 | ||||
|                 $$ = append($1, property) | ||||
|             } | ||||
|     |   T_VARIABLE | ||||
|             { | ||||
|                 identifier := node.NewIdentifier($1.Value) | ||||
|                 positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) | ||||
|                 comments.AddComments(identifier, $1.Comments()) | ||||
|                  | ||||
|                 variable := expr.NewVariable(identifier) | ||||
|                 positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) | ||||
|                 comments.AddComments(variable, $1.Comments()) | ||||
|                  | ||||
|                 property := stmt.NewProperty(variable, nil, "") | ||||
|                 positions.AddPosition(property, positionBuilder.NewTokenPosition($1)) | ||||
|                 comments.AddComments(property, $1.Comments()) | ||||
| 
 | ||||
|                 $$ = []node.Node{property} | ||||
|             } | ||||
|     |   T_VARIABLE '=' static_scalar | ||||
|             { | ||||
|                 identifier := node.NewIdentifier($1.Value) | ||||
|                 positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) | ||||
|                 comments.AddComments(identifier, $1.Comments()) | ||||
|                  | ||||
|                 variable := expr.NewVariable(identifier) | ||||
|                 positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) | ||||
|                 comments.AddComments(variable, $1.Comments()) | ||||
|                  | ||||
|                 property := stmt.NewProperty(variable, $3, "") | ||||
|                 positions.AddPosition(property, positionBuilder.NewTokenNodePosition($1, $3)) | ||||
|                 comments.AddComments(property, $1.Comments()) | ||||
| 
 | ||||
|                 $$ = []node.Node{property} | ||||
|             } | ||||
| ; | ||||
| 
 | ||||
| class_constant_declaration: | ||||
|         class_constant_declaration ',' T_STRING '=' static_scalar   {  } | ||||
|     |   T_CONST T_STRING '=' static_scalar  {  } | ||||
|         class_constant_declaration ',' T_STRING '=' static_scalar | ||||
|             { | ||||
|                 name := node.NewIdentifier($3.Value) | ||||
|                 positions.AddPosition(name, positionBuilder.NewTokenPosition($3)) | ||||
|                 comments.AddComments(name, $3.Comments()) | ||||
| 
 | ||||
|                 constant := stmt.NewConstant(name, $5, "") | ||||
|                 positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($3, $5)) | ||||
|                 comments.AddComments(constant, $3.Comments()) | ||||
| 
 | ||||
|                 $1.(*stmt.ConstList).Consts = append($1.(*stmt.ConstList).Consts, constant) | ||||
|                 positions.AddPosition($1, positionBuilder.NewNodesPosition($1, $5)) | ||||
| 
 | ||||
|                 $$ = $1 | ||||
|             } | ||||
|     |   T_CONST T_STRING '=' static_scalar | ||||
|             { | ||||
|                 name := node.NewIdentifier($2.Value) | ||||
|                 positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) | ||||
|                 comments.AddComments(name, $2.Comments()) | ||||
| 
 | ||||
|                 constant := stmt.NewConstant(name, $4, "") | ||||
|                 positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($2, $4)) | ||||
|                 comments.AddComments(constant, $2.Comments()) | ||||
| 
 | ||||
|                 $$ = stmt.NewClassConstList(nil, []node.Node{constant}) | ||||
|                 positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $4)) | ||||
|                 comments.AddComments($$, $1.Comments()) | ||||
|             } | ||||
| ; | ||||
| 
 | ||||
| echo_expr_list: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user