113 lines
1.2 KiB
Go
113 lines
1.2 KiB
Go
|
package freefloating
|
||
|
|
||
|
import "github.com/z7zmey/php-parser/position"
|
||
|
|
||
|
type StringType int
|
||
|
|
||
|
const (
|
||
|
WhiteSpaceType StringType = iota
|
||
|
CommentType
|
||
|
TokenType
|
||
|
)
|
||
|
|
||
|
type Position int
|
||
|
|
||
|
//go:generate stringer -type=Position -output ./position_string.go
|
||
|
const (
|
||
|
Start Position = iota
|
||
|
End
|
||
|
Slash
|
||
|
Colon
|
||
|
SemiColon
|
||
|
AltEnd
|
||
|
Dollar
|
||
|
Ampersand
|
||
|
Name
|
||
|
Prefix
|
||
|
Key
|
||
|
Var
|
||
|
UseType
|
||
|
ReturnType
|
||
|
OptionalType
|
||
|
CaseSeparator
|
||
|
LexicalVars
|
||
|
Params
|
||
|
Ref
|
||
|
Cast
|
||
|
Expr
|
||
|
InitExpr
|
||
|
CondExpr
|
||
|
IncExpr
|
||
|
True
|
||
|
Cond
|
||
|
|
||
|
HaltCompiller
|
||
|
Namespace
|
||
|
Static
|
||
|
Class
|
||
|
Use
|
||
|
While
|
||
|
For
|
||
|
Switch
|
||
|
Break
|
||
|
Foreach
|
||
|
Declare
|
||
|
Label
|
||
|
Finally
|
||
|
List
|
||
|
Default
|
||
|
If
|
||
|
ElseIf
|
||
|
Else
|
||
|
Variadic
|
||
|
Function
|
||
|
Alias
|
||
|
As
|
||
|
Equal
|
||
|
Exit
|
||
|
Array
|
||
|
Isset
|
||
|
Empty
|
||
|
Eval
|
||
|
Echo
|
||
|
Try
|
||
|
Catch
|
||
|
Unset
|
||
|
|
||
|
Stmts
|
||
|
VarList
|
||
|
ConstList
|
||
|
NameList
|
||
|
ParamList
|
||
|
ModifierList
|
||
|
ArrayPairList
|
||
|
CaseListStart
|
||
|
CaseListEnd
|
||
|
ArgumentList
|
||
|
PropertyList
|
||
|
ParameterList
|
||
|
AdaptationList
|
||
|
LexicalVarList
|
||
|
UseDeclarationList
|
||
|
|
||
|
OpenParenthesisToken
|
||
|
CloseParenthesisToken
|
||
|
)
|
||
|
|
||
|
type String struct {
|
||
|
StringType StringType
|
||
|
Value string
|
||
|
Position *position.Position
|
||
|
}
|
||
|
|
||
|
type Collection map[Position][]String
|
||
|
|
||
|
func (c Collection) IsEmpty() bool {
|
||
|
for _, v := range c {
|
||
|
if len(v) > 0 {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|