Woohoo we have math
This commit is contained in:
41
src/basic.h
41
src/basic.h
@@ -1,17 +1,20 @@
|
||||
#ifndef _BASIC_H_
|
||||
#define _BASIC_H_
|
||||
|
||||
#define BASIC_MATH_ADD 1
|
||||
#define BASIC_MATH_SUB 2
|
||||
#define BASIC_MATH_MUL 3
|
||||
#define BASIC_MATH_DIV 4
|
||||
#define BASIC_MATH_MOD 5
|
||||
#define BASIC_OPTP_ADD 1
|
||||
#define BASIC_OPTP_SUB 2
|
||||
#define BASIC_OPTP_MUL 3
|
||||
#define BASIC_OPTP_DIV 4
|
||||
#define BASIC_OPTP_MOD 5
|
||||
#define BASIC_OPTP_EQL 6
|
||||
#define BASIC_OPTP_ASN 7
|
||||
|
||||
#define BASIC_LVAL_EXPR 0
|
||||
#define BASIC_LVAL_VAR 1
|
||||
#define BASIC_RVAL_EXPR 2
|
||||
#define BASIC_RVAL_VAR 3
|
||||
#define BASIC_RVAL_CONST 4
|
||||
#define BASIC_LVAL_CONST 2
|
||||
#define BASIC_RVAL_EXPR 3
|
||||
#define BASIC_RVAL_VAR 4
|
||||
#define BASIC_RVAL_CONST 5
|
||||
|
||||
#define BASIC_FOUND_LVAL 0x0001
|
||||
#define BASIC_FOUND_RVAL 0x0002
|
||||
@@ -20,10 +23,17 @@
|
||||
#define BASIC_ERR_SYNTAX_TOKEN_LENGTH 2
|
||||
#define BASIC_ERR_SYNTAX_GENERAL 3
|
||||
#define BASIC_ERR_SYNTAX_MULTIPLE_RVALUES 4
|
||||
#define BASIC_ERR_INVALID_ARGUMENTS 5
|
||||
#define BASIC_ERR_INTERNAL_NULLPOINTER 6
|
||||
#define BASIC_ERR_INTERNAL_MEMORY 7
|
||||
#define BASIC_ERR_INTERNAL_UNDEFINED_BEHAVIOR 8
|
||||
#define BASIC_ERR_INTERNAL_UNIMPLEMENTED 9
|
||||
#define BASIC_ERR_MATH_DBZ 10
|
||||
|
||||
#define BASIC_TOKENIZER_MAX_LENGTH 512
|
||||
#define BASIC_VARNAME_MAX_LENGTH 16
|
||||
|
||||
struct basic_math_expr {
|
||||
struct basic_expr {
|
||||
char type;
|
||||
char lval_type;
|
||||
char rval_type;
|
||||
@@ -32,6 +42,19 @@ struct basic_math_expr {
|
||||
void *rval;
|
||||
};
|
||||
|
||||
#define BASIC_VARFLAG_INIT 1
|
||||
#define BASIC_VARFLAG_TINT 2
|
||||
#define BASIC_VARFLAG_TSTR 4
|
||||
|
||||
struct basic_variable {
|
||||
char *name;
|
||||
char flags;
|
||||
void *value;
|
||||
};
|
||||
|
||||
#define BASIC_CONST_TRUE 1
|
||||
#define BASIC_CONST_FALSE 0
|
||||
|
||||
extern int basic_errno;
|
||||
|
||||
void run_basic(void);
|
||||
|
||||
Reference in New Issue
Block a user