76 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			D
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			D
		
	
	
	
	
	
| module runtimedata;
 | |
| 
 | |
| 
 | |
| enum DEBUG = true;
 | |
| 
 | |
| class RunException : Exception
 | |
| {
 | |
|     this(string msg, string file = __FILE__, size_t line = __LINE__, Throwable nextInChain = null) pure nothrow @nogc @safe
 | |
|     {
 | |
|         super(msg, file, line, nextInChain);
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| enum DATA_TYPE
 | |
| {
 | |
|     FLOAT,
 | |
|     INTEGER,
 | |
|     VAR_POINTER,
 | |
|     NONE
 | |
| }
 | |
| enum EVAL_TYPE
 | |
| {
 | |
|     NUMBER,
 | |
|     UNDEFINED_VAR,
 | |
|     VAR,
 | |
|     PRINT,
 | |
|     BEG,
 | |
|     ASSIGN,
 | |
|     EXIT
 | |
| }
 | |
| 
 | |
| struct EvalReturn
 | |
| {
 | |
|     this(EVAL_TYPE type,DATA_TYPE dataType, float fVal )
 | |
|     {
 | |
|         this.type=type;
 | |
|         this.dataType = dataType;
 | |
|         this.fVal = fVal;
 | |
|     }
 | |
|     this(EVAL_TYPE type,DATA_TYPE dataType, int iVal)
 | |
|     {
 | |
|         this.type=type;
 | |
|         this.dataType = dataType;
 | |
|         this.iVal = iVal;
 | |
|   
 | |
|     }
 | |
|     this(EVAL_TYPE type,DATA_TYPE dataType, string sVar)
 | |
|     {
 | |
|         this.type=type;
 | |
|         this.dataType = dataType;
 | |
|         this.sVar = sVar;
 | |
|   
 | |
|     }
 | |
|     
 | |
|     EVAL_TYPE type;
 | |
|     DATA_TYPE dataType;
 | |
|     union
 | |
|     {
 | |
|         float fVal;
 | |
|         int iVal;
 | |
|         string sVar;
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| struct Variable
 | |
| {
 | |
|     DATA_TYPE dataType;
 | |
|     union
 | |
|     {
 | |
|         float fVal;
 | |
|         int iVal;
 | |
|     }
 | |
|     
 | |
| } |