Ejemplo n.º 1
0
 public CodegenBlock IfCondition(CodegenExpression condition)
 {
     CheckClosed();
     var builder = new CodegenStatementIf(this);
     statements.Add(builder);
     return builder.IfBlock(condition);
 }
Ejemplo n.º 2
0
 private ICodegenBlock IfInstanceOf(string name, Type clazz, bool not)
 {
     CheckClosed();
     var ifStmt = new CodegenStatementIf(this);
     ICodegenExpression condition = !not ?
         CodegenExpressionBuilder.InstanceOf(CodegenExpressionBuilder.Ref(name), clazz) :
         CodegenExpressionBuilder.NotInstanceOf(CodegenExpressionBuilder.Ref(name), clazz);
     var block = new CodegenBlock(ifStmt);
     ifStmt.Add(condition, block);
     _statements.Add(ifStmt);
     return block;
 }
Ejemplo n.º 3
0
 public ICodegenBlock BlockElseIf(ICodegenExpression condition)
 {
     if (_parentMethod != null)
     {
         throw new IllegalStateException("Else-If in a method-level block?");
     }
     if (!(_parentWBlock is CodegenStatementIf))
     {
         throw new IllegalStateException("Else_if in a non-if block?");
     }
     CodegenStatementIf ifStmt = (CodegenStatementIf)_parentWBlock;
     CheckClosed();
     _closed = true;
     var block = new CodegenBlock(_parentWBlock);
     ifStmt.Add(condition, block);
     return block;
 }
Ejemplo n.º 4
0
 public ICodegenBlock BlockElse()
 {
     if (_parentMethod != null)
     {
         throw new IllegalStateException("Else in a method-level block?");
     }
     if (!(_parentWBlock is CodegenStatementIf))
     {
         throw new IllegalStateException("Else in a non-if block?");
     }
     CodegenStatementIf ifStmt = (CodegenStatementIf)_parentWBlock;
     if (ifStmt.OptionalElse != null)
     {
         throw new IllegalStateException("Else already present");
     }
     CheckClosed();
     _closed = true;
     var block = new CodegenBlock(_parentWBlock);
     ifStmt.OptionalElse = block;
     return block;
 }