diff --git a/node/stmt/inline_html.go b/node/stmt/inline_html.go new file mode 100644 index 0000000..fea8a22 --- /dev/null +++ b/node/stmt/inline_html.go @@ -0,0 +1,25 @@ +package stmt + +import ( + "fmt" + "io" + + "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/token" +) + +type InlineHtml struct { + node.SimpleNode + token token.Token +} + +func NewInlineHtml(token token.Token) node.Node { + return InlineHtml{ + node.SimpleNode{Name: "InlineHtml", Attributes: make(map[string]string)}, + token, + } +} + +func (n InlineHtml) 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) +} diff --git a/parser/parser.go b/parser/parser.go index 7a9ab08..ef03ab2 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -2879,7 +2879,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:387 { - yyVAL.node = node.NewSimpleNode("Echo").Append(node.NewSimpleNode("InlineHtml").Attribute("value", yyDollar[1].token.String())) + yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token) } case 143: yyDollar = yyS[yypt-2 : yypt+1] diff --git a/parser/parser.y b/parser/parser.y index 910a8a5..57139e5 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -384,7 +384,7 @@ statement: | T_GLOBAL global_var_list ';' { $$ = stmt.NewGlobal($1, $2) } | T_STATIC static_var_list ';' { $$ = $2; } | T_ECHO echo_expr_list ';' { $$ = stmt.NewEcho($1, $2) } - | T_INLINE_HTML { $$ = node.NewSimpleNode("Echo").Append(node.NewSimpleNode("InlineHtml").Attribute("value", $1.String())) } + | T_INLINE_HTML { $$ = stmt.NewInlineHtml($1) } | expr ';' { $$ = stmt.NewExpression($1); } | T_UNSET '(' unset_variables possible_comma ')' ';' { $$ = node.NewSimpleNode("Unset").Append($3); }