OpenClonk
C4AulParse.cpp File Reference
#include "C4Include.h"
#include "script/C4AulParse.h"
#include "object/C4Def.h"
#include "script/C4AulDebug.h"
#include "script/C4AulExec.h"
#include <iomanip>
#include "C4AulWarnings.h"
Include dependency graph for C4AulParse.cpp:

Go to the source code of this file.

Macros

#define DEBUG_BYTECODE_DUMP   0
 
#define C4AUL_Include   "#include"
 
#define C4AUL_Append   "#appendto"
 
#define C4AUL_Warning   "#warning"
 
#define C4Aul_Warning_enable   "enable"
 
#define C4Aul_Warning_disable   "disable"
 
#define C4AUL_Func   "func"
 
#define C4AUL_Private   "private"
 
#define C4AUL_Protected   "protected"
 
#define C4AUL_Public   "public"
 
#define C4AUL_Global   "global"
 
#define C4AUL_Const   "const"
 
#define C4AUL_If   "if"
 
#define C4AUL_Else   "else"
 
#define C4AUL_Do   "do"
 
#define C4AUL_While   "while"
 
#define C4AUL_For   "for"
 
#define C4AUL_In   "in"
 
#define C4AUL_Return   "return"
 
#define C4AUL_Var   "Var"
 
#define C4AUL_Par   "Par"
 
#define C4AUL_Break   "break"
 
#define C4AUL_Continue   "continue"
 
#define C4AUL_this   "this"
 
#define C4AUL_GlobalNamed   "static"
 
#define C4AUL_LocalNamed   "local"
 
#define C4AUL_VarNamed   "var"
 
#define C4AUL_TypeInt   "int"
 
#define C4AUL_TypeBool   "bool"
 
#define C4AUL_TypeC4ID   "id"
 
#define C4AUL_TypeDef   "def"
 
#define C4AUL_TypeEffect   "effect"
 
#define C4AUL_TypeC4Object   "object"
 
#define C4AUL_TypePropList   "proplist"
 
#define C4AUL_TypeString   "string"
 
#define C4AUL_TypeArray   "array"
 
#define C4AUL_TypeFunction   "func"
 
#define C4AUL_TypeAny   "any"
 
#define C4AUL_True   "true"
 
#define C4AUL_False   "false"
 
#define C4AUL_Nil   "nil"
 
#define C4AUL_New   "new"
 
#define DIAG(id, text, enabled)   case C4AulWarningId::id: return enabled;
 
#define DIAG(id, text, enabled)   warnings.set(static_cast<size_t>(C4AulWarningId::id), enabled);
 
#define DIAG(id, text, enabled)   pOrgScript->EnableWarning(TokenSPos, C4AulWarningId::id, enable_warning);
 
#define DIAG(id, text, enabled)   std::make_pair(#id, C4AulWarningId::id),
 

Enumerations

enum  C4AulTokenType : int {
  ATT_INVALID , ATT_DIR , ATT_IDTF , ATT_INT ,
  ATT_STRING , ATT_DOT , ATT_COMMA , ATT_COLON ,
  ATT_SCOLON , ATT_BOPEN , ATT_BCLOSE , ATT_BOPEN2 ,
  ATT_BCLOSE2 , ATT_BLOPEN , ATT_BLCLOSE , ATT_CALL ,
  ATT_CALLFS , ATT_LDOTS , ATT_SET , ATT_OPERATOR ,
  ATT_EOF
}
 

Variables

const C4ScriptOpDef C4ScriptOpMap []
 

Macro Definition Documentation

◆ C4AUL_Append

#define C4AUL_Append   "#appendto"

Definition at line 31 of file C4AulParse.cpp.

◆ C4AUL_Break

#define C4AUL_Break   "break"

Definition at line 54 of file C4AulParse.cpp.

◆ C4AUL_Const

#define C4AUL_Const   "const"

Definition at line 43 of file C4AulParse.cpp.

◆ C4AUL_Continue

#define C4AUL_Continue   "continue"

Definition at line 55 of file C4AulParse.cpp.

◆ C4AUL_Do

#define C4AUL_Do   "do"

Definition at line 47 of file C4AulParse.cpp.

◆ C4AUL_Else

#define C4AUL_Else   "else"

Definition at line 46 of file C4AulParse.cpp.

◆ C4AUL_False

#define C4AUL_False   "false"

Definition at line 75 of file C4AulParse.cpp.

◆ C4AUL_For

#define C4AUL_For   "for"

Definition at line 49 of file C4AulParse.cpp.

◆ C4AUL_Func

#define C4AUL_Func   "func"

Definition at line 37 of file C4AulParse.cpp.

◆ C4AUL_Global

#define C4AUL_Global   "global"

Definition at line 42 of file C4AulParse.cpp.

◆ C4AUL_GlobalNamed

#define C4AUL_GlobalNamed   "static"

Definition at line 58 of file C4AulParse.cpp.

◆ C4AUL_If

#define C4AUL_If   "if"

Definition at line 45 of file C4AulParse.cpp.

◆ C4AUL_In

#define C4AUL_In   "in"

Definition at line 50 of file C4AulParse.cpp.

◆ C4AUL_Include

#define C4AUL_Include   "#include"

Definition at line 30 of file C4AulParse.cpp.

◆ C4AUL_LocalNamed

#define C4AUL_LocalNamed   "local"

Definition at line 59 of file C4AulParse.cpp.

◆ C4AUL_New

#define C4AUL_New   "new"

Definition at line 77 of file C4AulParse.cpp.

◆ C4AUL_Nil

#define C4AUL_Nil   "nil"

Definition at line 76 of file C4AulParse.cpp.

◆ C4AUL_Par

#define C4AUL_Par   "Par"

Definition at line 53 of file C4AulParse.cpp.

◆ C4AUL_Private

#define C4AUL_Private   "private"

Definition at line 39 of file C4AulParse.cpp.

◆ C4AUL_Protected

#define C4AUL_Protected   "protected"

Definition at line 40 of file C4AulParse.cpp.

◆ C4AUL_Public

#define C4AUL_Public   "public"

Definition at line 41 of file C4AulParse.cpp.

◆ C4AUL_Return

#define C4AUL_Return   "return"

Definition at line 51 of file C4AulParse.cpp.

◆ C4AUL_this

#define C4AUL_this   "this"

Definition at line 56 of file C4AulParse.cpp.

◆ C4AUL_True

#define C4AUL_True   "true"

Definition at line 74 of file C4AulParse.cpp.

◆ C4AUL_TypeAny

#define C4AUL_TypeAny   "any"

Definition at line 72 of file C4AulParse.cpp.

◆ C4AUL_TypeArray

#define C4AUL_TypeArray   "array"

Definition at line 70 of file C4AulParse.cpp.

◆ C4AUL_TypeBool

#define C4AUL_TypeBool   "bool"

Definition at line 63 of file C4AulParse.cpp.

◆ C4AUL_TypeC4ID

#define C4AUL_TypeC4ID   "id"

Definition at line 64 of file C4AulParse.cpp.

◆ C4AUL_TypeC4Object

#define C4AUL_TypeC4Object   "object"

Definition at line 67 of file C4AulParse.cpp.

◆ C4AUL_TypeDef

#define C4AUL_TypeDef   "def"

Definition at line 65 of file C4AulParse.cpp.

◆ C4AUL_TypeEffect

#define C4AUL_TypeEffect   "effect"

Definition at line 66 of file C4AulParse.cpp.

◆ C4AUL_TypeFunction

#define C4AUL_TypeFunction   "func"

Definition at line 71 of file C4AulParse.cpp.

◆ C4AUL_TypeInt

#define C4AUL_TypeInt   "int"

Definition at line 62 of file C4AulParse.cpp.

◆ C4AUL_TypePropList

#define C4AUL_TypePropList   "proplist"

Definition at line 68 of file C4AulParse.cpp.

◆ C4AUL_TypeString

#define C4AUL_TypeString   "string"

Definition at line 69 of file C4AulParse.cpp.

◆ C4AUL_Var

#define C4AUL_Var   "Var"

Definition at line 52 of file C4AulParse.cpp.

◆ C4AUL_VarNamed

#define C4AUL_VarNamed   "var"

Definition at line 60 of file C4AulParse.cpp.

◆ C4AUL_Warning

#define C4AUL_Warning   "#warning"

Definition at line 32 of file C4AulParse.cpp.

◆ C4Aul_Warning_disable

#define C4Aul_Warning_disable   "disable"

Definition at line 35 of file C4AulParse.cpp.

◆ C4Aul_Warning_enable

#define C4Aul_Warning_enable   "enable"

Definition at line 34 of file C4AulParse.cpp.

◆ C4AUL_While

#define C4AUL_While   "while"

Definition at line 48 of file C4AulParse.cpp.

◆ DEBUG_BYTECODE_DUMP

#define DEBUG_BYTECODE_DUMP   0

Definition at line 26 of file C4AulParse.cpp.

◆ DIAG [1/4]

#define DIAG (   id,
  text,
  enabled 
)    case C4AulWarningId::id: return enabled;

◆ DIAG [2/4]

#define DIAG (   id,
  text,
  enabled 
)    warnings.set(static_cast<size_t>(C4AulWarningId::id), enabled);

◆ DIAG [3/4]

#define DIAG (   id,
  text,
  enabled 
)    pOrgScript->EnableWarning(TokenSPos, C4AulWarningId::id, enable_warning);

◆ DIAG [4/4]

#define DIAG (   id,
  text,
  enabled 
)    std::make_pair(#id, C4AulWarningId::id),

Enumeration Type Documentation

◆ C4AulTokenType

enum C4AulTokenType : int
Enumerator
ATT_INVALID 
ATT_DIR 
ATT_IDTF 
ATT_INT 
ATT_STRING 
ATT_DOT 
ATT_COMMA 
ATT_COLON 
ATT_SCOLON 
ATT_BOPEN 
ATT_BCLOSE 
ATT_BOPEN2 
ATT_BCLOSE2 
ATT_BLOPEN 
ATT_BLCLOSE 
ATT_CALL 
ATT_CALLFS 
ATT_LDOTS 
ATT_SET 
ATT_OPERATOR 
ATT_EOF 

Definition at line 80 of file C4AulParse.cpp.

81 {
82  ATT_INVALID,// invalid token
83  ATT_DIR, // directive
84  ATT_IDTF, // identifier
85  ATT_INT, // integer constant
86  ATT_STRING, // string constant
87  ATT_DOT, // "."
88  ATT_COMMA, // ","
89  ATT_COLON, // ":"
90  ATT_SCOLON, // ";"
91  ATT_BOPEN, // "("
92  ATT_BCLOSE, // ")"
93  ATT_BOPEN2, // "["
94  ATT_BCLOSE2,// "]"
95  ATT_BLOPEN, // "{"
96  ATT_BLCLOSE,// "}"
97  ATT_CALL, // "->"
98  ATT_CALLFS, // "->~"
99  ATT_LDOTS, // '...'
100  ATT_SET, // '='
101  ATT_OPERATOR,// operator
102  ATT_EOF // end of file
103 };
@ ATT_CALL
Definition: C4AulParse.cpp:97
@ ATT_BCLOSE2
Definition: C4AulParse.cpp:94
@ ATT_EOF
Definition: C4AulParse.cpp:102
@ ATT_INT
Definition: C4AulParse.cpp:85
@ ATT_BLCLOSE
Definition: C4AulParse.cpp:96
@ ATT_LDOTS
Definition: C4AulParse.cpp:99
@ ATT_SET
Definition: C4AulParse.cpp:100
@ ATT_DOT
Definition: C4AulParse.cpp:87
@ ATT_COMMA
Definition: C4AulParse.cpp:88
@ ATT_COLON
Definition: C4AulParse.cpp:89
@ ATT_IDTF
Definition: C4AulParse.cpp:84
@ ATT_BOPEN
Definition: C4AulParse.cpp:91
@ ATT_BOPEN2
Definition: C4AulParse.cpp:93
@ ATT_CALLFS
Definition: C4AulParse.cpp:98
@ ATT_OPERATOR
Definition: C4AulParse.cpp:101
@ ATT_DIR
Definition: C4AulParse.cpp:83
@ ATT_STRING
Definition: C4AulParse.cpp:86
@ ATT_BLOPEN
Definition: C4AulParse.cpp:95
@ ATT_INVALID
Definition: C4AulParse.cpp:82
@ ATT_SCOLON
Definition: C4AulParse.cpp:90
@ ATT_BCLOSE
Definition: C4AulParse.cpp:92

Variable Documentation

◆ C4ScriptOpMap