KiCad PCB EDA Suite
libeval_compiler.h File Reference
#include <cstddef>
#include <functional>
#include <map>
#include <string>
#include <stack>
#include <base_units.h>
#include <wx/intl.h>

Go to the source code of this file.

Classes

struct  LIBEVAL::ERROR_STATUS
 
struct  LIBEVAL::T_TOKEN_VALUE
 
struct  LIBEVAL::T_TOKEN
 
class  LIBEVAL::TREE_NODE
 
class  LIBEVAL::UNIT_RESOLVER
 
class  LIBEVAL::VALUE
 
class  LIBEVAL::VAR_REF
 
class  LIBEVAL::CONTEXT
 
class  LIBEVAL::UCODE
 
class  LIBEVAL::UOP
 
class  LIBEVAL::TOKENIZER
 
class  LIBEVAL::COMPILER
 

Namespaces

 LIBEVAL
 

Macros

#define TR_OP_BINARY_MASK   0x200
 
#define TR_OP_UNARY_MASK   0x100
 
#define TR_OP_MUL   0x201
 
#define TR_OP_DIV   0x202
 
#define TR_OP_ADD   0x203
 
#define TR_OP_SUB   0x204
 
#define TR_OP_LESS   0x25
 
#define TR_OP_GREATER   0x206
 
#define TR_OP_LESS_EQUAL   0x207
 
#define TR_OP_GREATER_EQUAL   0x208
 
#define TR_OP_EQUAL   0x209
 
#define TR_OP_NOT_EQUAL   0x20a
 
#define TR_OP_BOOL_AND   0x20b
 
#define TR_OP_BOOL_OR   0x20c
 
#define TR_OP_BOOL_NOT   0x100
 
#define TR_OP_FUNC_CALL   24
 
#define TR_OP_METHOD_CALL   25
 
#define TR_UOP_PUSH_VAR   1
 
#define TR_UOP_PUSH_VALUE   2
 

Typedefs

typedef std::function< void(CONTEXT *, void *)> LIBEVAL::FUNC_CALL_REF
 

Enumerations

enum  LIBEVAL::COMPILATION_STAGE { LIBEVAL::CST_PARSE = 0, LIBEVAL::CST_CODEGEN, LIBEVAL::CST_RUNTIME }
 
enum  LIBEVAL::VAR_TYPE_T { LIBEVAL::VT_STRING = 1, LIBEVAL::VT_NUMERIC, LIBEVAL::VT_UNDEFINED, LIBEVAL::VT_PARSE_ERROR }
 
enum  LIBEVAL::TOKEN_TYPE_T {
  LIBEVAL::TR_UNDEFINED = 0, LIBEVAL::TR_NUMBER = 1, LIBEVAL::TR_IDENTIFIER = 2, LIBEVAL::TR_ASSIGN = 3,
  LIBEVAL::TR_STRUCT_REF = 4, LIBEVAL::TR_STRING = 5, LIBEVAL::TR_UNIT = 6, LIBEVAL::TR_ARG_LIST = 7,
  LIBEVAL::TR_NULL = 8
}
 

Functions

TREE_NODE * LIBEVAL::newNode (LIBEVAL::COMPILER *compiler, int op, const T_TOKEN_VALUE &value)
 

Variables

constexpr T_TOKEN_VALUE LIBEVAL::defaultTokenValue = { nullptr, 0.0, 0 }
 
constexpr T_TOKEN LIBEVAL::defaultToken = { TR_UNDEFINED, defaultTokenValue }
 

Macro Definition Documentation

◆ TR_OP_ADD

#define TR_OP_ADD   0x203

Definition at line 43 of file libeval_compiler.h.

◆ TR_OP_BINARY_MASK

#define TR_OP_BINARY_MASK   0x200

Definition at line 38 of file libeval_compiler.h.

◆ TR_OP_BOOL_AND

#define TR_OP_BOOL_AND   0x20b

Definition at line 51 of file libeval_compiler.h.

◆ TR_OP_BOOL_NOT

#define TR_OP_BOOL_NOT   0x100

Definition at line 53 of file libeval_compiler.h.

◆ TR_OP_BOOL_OR

#define TR_OP_BOOL_OR   0x20c

Definition at line 52 of file libeval_compiler.h.

◆ TR_OP_DIV

#define TR_OP_DIV   0x202

Definition at line 42 of file libeval_compiler.h.

◆ TR_OP_EQUAL

#define TR_OP_EQUAL   0x209

Definition at line 49 of file libeval_compiler.h.

◆ TR_OP_FUNC_CALL

#define TR_OP_FUNC_CALL   24

Definition at line 54 of file libeval_compiler.h.

◆ TR_OP_GREATER

#define TR_OP_GREATER   0x206

Definition at line 46 of file libeval_compiler.h.

◆ TR_OP_GREATER_EQUAL

#define TR_OP_GREATER_EQUAL   0x208

Definition at line 48 of file libeval_compiler.h.

◆ TR_OP_LESS

#define TR_OP_LESS   0x25

Definition at line 45 of file libeval_compiler.h.

◆ TR_OP_LESS_EQUAL

#define TR_OP_LESS_EQUAL   0x207

Definition at line 47 of file libeval_compiler.h.

◆ TR_OP_METHOD_CALL

#define TR_OP_METHOD_CALL   25

Definition at line 55 of file libeval_compiler.h.

◆ TR_OP_MUL

#define TR_OP_MUL   0x201

Definition at line 41 of file libeval_compiler.h.

◆ TR_OP_NOT_EQUAL

#define TR_OP_NOT_EQUAL   0x20a

Definition at line 50 of file libeval_compiler.h.

◆ TR_OP_SUB

#define TR_OP_SUB   0x204

Definition at line 44 of file libeval_compiler.h.

◆ TR_OP_UNARY_MASK

#define TR_OP_UNARY_MASK   0x100

Definition at line 39 of file libeval_compiler.h.

◆ TR_UOP_PUSH_VALUE

#define TR_UOP_PUSH_VALUE   2

Definition at line 57 of file libeval_compiler.h.

◆ TR_UOP_PUSH_VAR

#define TR_UOP_PUSH_VAR   1

Definition at line 56 of file libeval_compiler.h.