Esempio n. 1
0
 private CodegenBlock WhileOrDoLoop(
     CodegenExpression expression,
     bool isWhile)
 {
     CheckClosed();
     var whileStmt = new CodegenStatementWhileOrDo(this, expression, isWhile);
     var block = new CodegenBlock(whileStmt);
     whileStmt.Block = block;
     statements.Add(whileStmt);
     return block;
 }
Esempio n. 2
0
 public CodegenBlock ForEachVar(
     string name,
     CodegenExpression target)
 {
     CheckClosed();
     var forStmt = new CodegenStatementForEach(this, name, target);
     var block = new CodegenBlock(forStmt);
     forStmt.Block = block;
     statements.Add(forStmt);
     return block;
 }
Esempio n. 3
0
 public CodegenBlock ForLoopIntSimple(
     string name,
     CodegenExpression upperLimit)
 {
     CheckClosed();
     var forStmt = new CodegenStatementForIntSimple(this, name, upperLimit);
     var block = new CodegenBlock(forStmt);
     forStmt.Block = block;
     statements.Add(forStmt);
     return block;
 }
Esempio n. 4
0
 public CodegenBlock ForLoop(
     Type type,
     string name,
     CodegenExpression initialization,
     CodegenExpression termination,
     CodegenExpression increment)
 {
     CheckClosed();
     var forStmt = new CodegenStatementFor(this, type, name, initialization, termination, increment);
     var block = new CodegenBlock(forStmt);
     forStmt.Block = block;
     statements.Add(forStmt);
     return block;
 }
Esempio n. 5
0
        protected CodegenMethod(
            Type returnType,
            string returnTypeName,
            Type generator,
            CodegenSymbolProvider optionalSymbolProvider,
            CodegenScope env)
        {
            if (generator == null) {
                throw new ArgumentException("Invalid null generator");
            }

            ReturnType = returnType;
            ReturnTypeName = returnTypeName;
            OptionalSymbolProvider = optionalSymbolProvider;
            Block = new CodegenBlock(this);
            if (env.IsDebug) {
                AdditionalDebugInfo = GetGeneratorDetail(generator);
            }
            else {
                AdditionalDebugInfo = generator.GetSimpleName();
            }
        }
Esempio n. 6
0
 public Setter(CodegenBlock parent) : base(parent)
 {
 }