use_list node
This commit is contained in:
		
							parent
							
								
									b424e82812
								
							
						
					
					
						commit
						ddf72d4b4f
					
				| @ -33,7 +33,7 @@ func (n Use) Print(out io.Writer, indent string) { | ||||
| 	fmt.Fprintf(out, "\n%v%v [- -]", indent, n.Name) | ||||
| 
 | ||||
| 	if n.useType != nil { | ||||
| 		fmt.Fprintf(out, "\n%vtype: %q", indent+"  ", n.alias.GetValue()) | ||||
| 		fmt.Fprintf(out, "\n%vtype:", indent+"  ") | ||||
| 		n.useType.Print(out, indent+"    ") | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										41
									
								
								node/stmt/use_list.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								node/stmt/use_list.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| package stmt | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 
 | ||||
| 	"github.com/z7zmey/php-parser/node" | ||||
| 	"github.com/z7zmey/php-parser/token" | ||||
| ) | ||||
| 
 | ||||
| type UseList struct { | ||||
| 	node.SimpleNode | ||||
| 	token   token.Token | ||||
| 	useType node.Node | ||||
| 	uses    []node.Node | ||||
| } | ||||
| 
 | ||||
| func NewUseList(token token.Token, useType node.Node, uses []node.Node) node.Node { | ||||
| 	return UseList{ | ||||
| 		node.SimpleNode{Name: "UseList", Attributes: make(map[string]string)}, | ||||
| 		token, | ||||
| 		useType, | ||||
| 		uses, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (n UseList) Print(out io.Writer, indent string) { | ||||
| 	fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value) | ||||
| 
 | ||||
| 	if n.useType != nil { | ||||
| 		fmt.Fprintf(out, "\n%vtype:", indent+"  ") | ||||
| 		n.useType.Print(out, indent+"    ") | ||||
| 	} | ||||
| 
 | ||||
| 	if n.uses != nil { | ||||
| 		fmt.Fprintf(out, "\n%vuses:", indent+"  ") | ||||
| 		for _, nn := range n.uses { | ||||
| 			nn.Print(out, indent+"    ") | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										1148
									
								
								parser/parser.go
									
									
									
									
									
								
							
							
						
						
									
										1148
									
								
								parser/parser.go
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -199,7 +199,7 @@ func Parse(src io.Reader, fName string) node.Node { | ||||
| %type <node> variable_class_name dereferencable_scalar constant dereferencable | ||||
| %type <node> callable_expr callable_variable static_member new_variable | ||||
| %type <node> encaps_var encaps_var_offset isset_variables | ||||
| %type <node> top_statement_list use_declarations inner_statement_list if_stmt | ||||
| %type <node> top_statement_list inner_statement_list if_stmt | ||||
| %type <node> alt_if_stmt  | ||||
| %type <node> parameter_list class_statement_list | ||||
| %type <node> implements_list if_stmt_without_else | ||||
| @ -219,6 +219,7 @@ func Parse(src io.Reader, fName string) node.Node { | ||||
| %type <list> const_list echo_expr_list for_exprs non_empty_for_exprs global_var_list | ||||
| %type <list> unprefixed_use_declarations inline_use_declarations property_list static_var_list | ||||
| %type <list> switch_case_list case_list trait_adaptation_list trait_adaptations unset_variables | ||||
| %type <list> use_declarations | ||||
| 
 | ||||
| %% | ||||
| 
 | ||||
| @ -277,8 +278,8 @@ top_statement: | ||||
|     |   T_NAMESPACE '{' top_statement_list '}'          { $$ = stmt.NewNamespace($1, nil, $3.(node.SimpleNode).Children) } | ||||
|     |   T_USE mixed_group_use_declaration ';'           { $$ = $2.(stmt.GroupUse).SetToken($1) } | ||||
|     |   T_USE use_type group_use_declaration ';'        { $$ = $3.(stmt.GroupUse).SetToken($1).(stmt.GroupUse).SetUseType($2) } | ||||
|     |   T_USE use_declarations ';'                      { $$ = $2; } | ||||
|     |   T_USE use_type use_declarations ';'             { $$ = $3.Append($2) } | ||||
|     |   T_USE use_declarations ';'                      { $$ = stmt.NewUseList($1, nil, $2) } | ||||
|     |   T_USE use_type use_declarations ';'             { $$ = stmt.NewUseList($1, $2, $3) } | ||||
|     |   T_CONST const_list ';'                          { $$ = stmt.NewStmtConst($1, $2) } | ||||
| ; | ||||
| 
 | ||||
| @ -329,8 +330,8 @@ unprefixed_use_declarations: | ||||
| ; | ||||
| 
 | ||||
| use_declarations: | ||||
|         use_declarations ',' use_declaration            { $$ = $1.Append($3) } | ||||
|     |   use_declaration                                 { $$ = node.NewSimpleNode("UseList").Append($1) } | ||||
|         use_declarations ',' use_declaration            { $$ = append($1, $3) } | ||||
|     |   use_declaration                                 { $$ = []node.Node{$1} } | ||||
| ; | ||||
| 
 | ||||
| inline_use_declaration: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user