public static AstNode CreateConstantLoad(object constant)
 {
     AstNode ret;
     if (constant is char)
         ret = new CharNode(ModuleBuilder.SourceLocation, (char)constant);
     else if (constant is int)
         ret = new IntegerNode(ModuleBuilder.SourceLocation, (int)constant);
     else if (constant is double)
         ret = new FloatNode(ModuleBuilder.SourceLocation, (double)constant);
     else
         ret = new StringNode(ModuleBuilder.SourceLocation, constant.ToString());
     return ret;
 }
Esempio n. 2
0
 public void Accept(StringNode node)
 {
 }
Esempio n. 3
0
 public void Accept(StringNode node)
 {
     var str = new HassiumString(node.String);
     if (!module.ObjectPool.ContainsKey(str.GetHashCode()))
         module.ObjectPool.Add(str.GetHashCode(), str);
     method.Emit(node.SourceLocation, InstructionType.PushObject, str.GetHashCode());
 }