[refactoring] store halt_compiler tokens

This commit is contained in:
Vadym Slizov 2020-08-03 23:21:12 +02:00
parent a70e34d726
commit 45464654c6
7 changed files with 54 additions and 78 deletions

BIN
internal/php5/php5.go generated

Binary file not shown.

View File

@ -364,17 +364,14 @@ top_statement:
} }
| T_HALT_COMPILER '(' ')' ';' | T_HALT_COMPILER '(' ')' ';'
{ {
$$ = &ast.StmtHaltCompiler{ast.Node{}, } $$ = &ast.StmtHaltCompiler{ast.Node{}}
// save position // save position
$$.GetNode().Position = position.NewTokensPosition($1, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4)
// save comments // save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...))
yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens)
yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens)
yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
} }
@ -831,17 +828,14 @@ inner_statement:
} }
| T_HALT_COMPILER '(' ')' ';' | T_HALT_COMPILER '(' ')' ';'
{ {
$$ = &ast.StmtHaltCompiler{ast.Node{}, } $$ = &ast.StmtHaltCompiler{ast.Node{}}
// save position // save position
$$.GetNode().Position = position.NewTokensPosition($1, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4)
// save comments // save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...))
yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens)
yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens)
yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
} }

BIN
internal/php7/php7.go generated

Binary file not shown.

View File

@ -468,10 +468,7 @@ top_statement:
// save comments // save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...))
yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens)
yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens)
yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
} }
@ -930,17 +927,14 @@ inner_statement:
} }
| T_HALT_COMPILER '(' ')' ';' | T_HALT_COMPILER '(' ')' ';'
{ {
$$ = &ast.StmtHaltCompiler{ast.Node{}, } $$ = &ast.StmtHaltCompiler{ast.Node{}}
// save position // save position
$$.GetNode().Position = position.NewTokensPosition($1, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4)
// save comments // save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...))
yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens)
yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens)
yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
} }

View File

@ -2753,18 +2753,8 @@ func (p *Printer) printStmtHaltCompiler(n ast.Vertex) {
p.printFreeFloating(nn, token.Start) p.printFreeFloating(nn, token.Start)
io.WriteString(p.w, "__halt_compiler") io.WriteString(p.w, "__halt_compiler")
p.printFreeFloating(nn, token.HaltCompiller)
io.WriteString(p.w, "(")
p.printFreeFloating(nn, token.OpenParenthesisToken)
io.WriteString(p.w, ")")
p.printFreeFloating(nn, token.CloseParenthesisToken)
p.printFreeFloating(nn, token.SemiColon) p.printFreeFloatingOrDefault(nn, token.End, "();")
if nn.GetNode().Tokens.IsEmpty() {
io.WriteString(p.w, ";")
}
p.printFreeFloating(nn, token.End)
} }
func (p *Printer) printStmtIf(n ast.Vertex) { func (p *Printer) printStmtIf(n ast.Vertex) {

View File

@ -25,7 +25,6 @@ const (
True True
Cond Cond
HaltCompiller
Namespace Namespace
Static Static
Class Class

View File

@ -28,56 +28,55 @@ func _() {
_ = x[IncExpr-17] _ = x[IncExpr-17]
_ = x[True-18] _ = x[True-18]
_ = x[Cond-19] _ = x[Cond-19]
_ = x[HaltCompiller-20] _ = x[Namespace-20]
_ = x[Namespace-21] _ = x[Static-21]
_ = x[Static-22] _ = x[Class-22]
_ = x[Class-23] _ = x[Use-23]
_ = x[Use-24] _ = x[While-24]
_ = x[While-25] _ = x[For-25]
_ = x[For-26] _ = x[Switch-26]
_ = x[Switch-27] _ = x[Foreach-27]
_ = x[Foreach-28] _ = x[Declare-28]
_ = x[Declare-29] _ = x[Label-29]
_ = x[Label-30] _ = x[Finally-30]
_ = x[Finally-31] _ = x[List-31]
_ = x[List-32] _ = x[Default-32]
_ = x[Default-33] _ = x[If-33]
_ = x[If-34] _ = x[ElseIf-34]
_ = x[ElseIf-35] _ = x[Else-35]
_ = x[Else-36] _ = x[Function-36]
_ = x[Function-37] _ = x[Alias-37]
_ = x[Alias-38] _ = x[Equal-38]
_ = x[Equal-39] _ = x[Exit-39]
_ = x[Exit-40] _ = x[Array-40]
_ = x[Array-41] _ = x[Isset-41]
_ = x[Isset-42] _ = x[Empty-42]
_ = x[Empty-43] _ = x[Eval-43]
_ = x[Eval-44] _ = x[Echo-44]
_ = x[Echo-45] _ = x[Try-45]
_ = x[Try-46] _ = x[Catch-46]
_ = x[Catch-47] _ = x[Unset-47]
_ = x[Unset-48] _ = x[Stmts-48]
_ = x[Stmts-49] _ = x[VarList-49]
_ = x[VarList-50] _ = x[ConstList-50]
_ = x[ConstList-51] _ = x[NameList-51]
_ = x[NameList-52] _ = x[ParamList-52]
_ = x[ParamList-53] _ = x[ModifierList-53]
_ = x[ModifierList-54] _ = x[ArrayPairList-54]
_ = x[ArrayPairList-55] _ = x[CaseListStart-55]
_ = x[CaseListStart-56] _ = x[CaseListEnd-56]
_ = x[CaseListEnd-57] _ = x[ArgumentList-57]
_ = x[ArgumentList-58] _ = x[PropertyList-58]
_ = x[PropertyList-59] _ = x[ParameterList-59]
_ = x[ParameterList-60] _ = x[AdaptationList-60]
_ = x[AdaptationList-61] _ = x[LexicalVarList-61]
_ = x[LexicalVarList-62] _ = x[OpenParenthesisToken-62]
_ = x[OpenParenthesisToken-63] _ = x[CloseParenthesisToken-63]
_ = x[CloseParenthesisToken-64]
} }
const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchForeachDeclareLabelFinallyListDefaultIfElseIfElseFunctionAliasEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListOpenParenthesisTokenCloseParenthesisToken" const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondNamespaceStaticClassUseWhileForSwitchForeachDeclareLabelFinallyListDefaultIfElseIfElseFunctionAliasEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListOpenParenthesisTokenCloseParenthesisToken"
var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 137, 146, 152, 157, 160, 165, 168, 174, 181, 188, 193, 200, 204, 211, 213, 219, 223, 231, 236, 241, 245, 250, 255, 260, 264, 268, 271, 276, 281, 286, 293, 302, 310, 319, 331, 344, 357, 368, 380, 392, 405, 419, 433, 453, 474} var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 133, 139, 144, 147, 152, 155, 161, 168, 175, 180, 187, 191, 198, 200, 206, 210, 218, 223, 228, 232, 237, 242, 247, 251, 255, 258, 263, 268, 273, 280, 289, 297, 306, 318, 331, 344, 355, 367, 379, 392, 406, 420, 440, 461}
func (i Position) String() string { func (i Position) String() string {
if i < 0 || i >= Position(len(_Position_index)-1) { if i < 0 || i >= Position(len(_Position_index)-1) {