private void PrintLiteral(LiteralNode p_node) { Console.Write("[LITERAL "); if (p_node.Value == null) { Console.Write("\"" + ("Null") + "\""); } else if (p_node.ValueType == typeof(string)) { Console.Write("\"" + (p_node.Value) + "\""); } else { Console.Write(p_node.Value.ToString()); } Console.Write("]"); }
private void ChunkLiteral(LiteralNode p_node) { if (p_node.ValueType == typeof(bool)) { if ((bool)p_node.Value == true) { Add(OpCode.LOAD_TRUE, p_node.PositionData); } else if ((bool)p_node.Value == false) { Add(OpCode.LOAD_FALSE, p_node.PositionData); } } else if (p_node.ValueType == typeof(Float)) { int address = AddData((Float)p_node.Value); Add(OpCode.LOAD_DATA, (Operand)address, p_node.PositionData); } else if (p_node.ValueType == typeof(Integer)) { int address = AddData((Integer)p_node.Value); Add(OpCode.LOAD_DATA, (Operand)address, p_node.PositionData); } else if (p_node.ValueType == typeof(string)) { int address = AddData((string)p_node.Value); Add(OpCode.LOAD_DATA, (Operand)address, p_node.PositionData); } else if (p_node.ValueType == typeof(char)) { int address = AddData((char)p_node.Value); Add(OpCode.LOAD_DATA, (Operand)address, p_node.PositionData); } else if ((string)p_node.Value == null) { Add(OpCode.LOAD_NIL, p_node.PositionData); } }