github.com/hirochachacha/plua@v0.0.0-20170217012138-c82f520cc725/compiler/ast/type.go (about)

     1  package ast
     2  
     3  type Type uint
     4  
     5  func (typ Type) String() string {
     6  	return astNames[typ]
     7  }
     8  
     9  const (
    10  	COMMENT Type = iota
    11  	COMMENT_GROUP
    12  
    13  	PARAM_LIST
    14  
    15  	BAD_EXPR
    16  	NAME
    17  	VARARG
    18  	BASIC_LIT
    19  	FUNC_LIT
    20  	TABLE_LIT
    21  	PAREN_EXPR
    22  	SELECTOR_EXPR
    23  	INDEX_EXPR
    24  	CALL_EXPR
    25  	UNARY_EXPR
    26  	BINARY_EXPR
    27  	KEY_VALUE_EXPR
    28  
    29  	BAD_STMT
    30  	EMPTY_STMT
    31  	LOCAL_ASSIGN_STMT
    32  	LOCAL_FUNC_STMT
    33  	FUNC_STMT
    34  	LABEL_STMT
    35  	EXPR_STMT
    36  	ASSIGN_STMT
    37  	GOTO_STMT
    38  	BREAK_STMT
    39  	IF_STMT
    40  	DO_STMT
    41  	WHILE_STMT
    42  	REPEAT_STMT
    43  	RETURN_STMT
    44  	FOR_STMT
    45  	FOR_EACH_STMT
    46  
    47  	FILE
    48  	BLOCK
    49  	FUNC_BODY
    50  )
    51  
    52  var astNames = [...]string{
    53  	COMMENT:       "Comment",
    54  	COMMENT_GROUP: "CommentGroup",
    55  
    56  	PARAM_LIST: "ParamList",
    57  
    58  	BAD_EXPR:       "BadExpr",
    59  	NAME:           "Name",
    60  	VARARG:         "Vararg",
    61  	BASIC_LIT:      "BasicLit",
    62  	FUNC_LIT:       "FuncLit",
    63  	TABLE_LIT:      "TableLit",
    64  	PAREN_EXPR:     "ParenExpr",
    65  	SELECTOR_EXPR:  "SelectorExpr",
    66  	INDEX_EXPR:     "IndexExpr",
    67  	CALL_EXPR:      "CallExpr",
    68  	UNARY_EXPR:     "UnaryExpr",
    69  	BINARY_EXPR:    "BinaryExpr",
    70  	KEY_VALUE_EXPR: "KeyValueExpr",
    71  
    72  	BAD_STMT:          "BadStmt",
    73  	EMPTY_STMT:        "EmptyStmt",
    74  	LOCAL_ASSIGN_STMT: "LocalAssignStmt",
    75  	LOCAL_FUNC_STMT:   "LocalFuncStmt",
    76  	FUNC_STMT:         "FuncStmt",
    77  	LABEL_STMT:        "LabelStmt",
    78  	EXPR_STMT:         "ExprStmt",
    79  	ASSIGN_STMT:       "AssignStmt",
    80  	GOTO_STMT:         "GotoStmt",
    81  	BREAK_STMT:        "BreakStmt",
    82  	IF_STMT:           "IfStmt",
    83  	DO_STMT:           "DoStmt",
    84  	WHILE_STMT:        "WhileStmt",
    85  	REPEAT_STMT:       "RepeatStmt",
    86  	RETURN_STMT:       "ReturnStmt",
    87  	FOR_STMT:          "ForStmt",
    88  	FOR_EACH_STMT:     "ForEachStmt",
    89  
    90  	FILE:      "File",
    91  	BLOCK:     "Block",
    92  	FUNC_BODY: "FuncBody",
    93  }