From 43ace92875b4610155a23b16645fb3097606c6e5 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 22:07:58 +0200 Subject: [PATCH] [refactoring] update ast structure of "Nullable" --- internal/php5/php5.go | Bin 288256 -> 289296 bytes internal/php7/php7.go | Bin 240491 -> 239425 bytes internal/php7/php7.y | 14 +++++++------- pkg/ast/node.go | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index e4b164640dcef6809d57294149825cb577ea49b6..56f92ea4f48b2ce62de30626dd1de5cf3cc835f1 100644 GIT binary patch delta 6960 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 delta 5409 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 diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 72ec026..0bfff99 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1948,13 +1948,13 @@ type_expr: } | '?' type { - $$ = &ast.Nullable{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Nullable{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + QuestionTkn: $1, + Expr: $2, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index d792bea..eaf4930 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -33,7 +33,8 @@ func (n *Root) Accept(v NodeVisitor) { // Nullable node type Nullable struct { Node - Expr Vertex + QuestionTkn *token.Token + Expr Vertex } func (n *Nullable) Accept(v NodeVisitor) {