示例#1
0
        public override void Visit(StringAST stringConstant)
        {
            var stringPtr   = LLVM.BuildAlloca(_builder, LLVM.ArrayType(LLVM.Int8Type(), (uint)stringConstant.Value.Length + 1), "aString");
            var constString = LLVM.ConstString(stringConstant.Value, (uint)stringConstant.Value.Length, _false);

            LLVM.BuildStore(_builder, constString, stringPtr);

            _currentValue = LLVM.BuildGEP(_builder, stringPtr, new LLVMValueRef[] { LLVM.ConstInt(LLVM.Int32Type(), 0, _false), LLVM.ConstInt(LLVM.Int32Type(), 0, _false) }, "gepCast");
        }
示例#2
0
文件: TypeVisitor.cs 项目: Ryuuke/Ryu
 public override void Visit(StringAST stringConstant)
 {
     _stateInfo.currentType = new StaticArrayTypeAST
     {
         Size = (uint)stringConstant.Value.Length,
         TypeOfContainedValues = new TypeAST
         {
             TypeName = Enum.GetName(typeof(Keyword), Keyword.CHAR).ToLower()
         }
     };
 }
示例#3
0
 public virtual void Visit(StringAST stringConstant)
 {
 }