Exemple #1
0
        public readonly Statement otherwise; // Empty statement if there was no else part.

        public IfStatement(ComponentReader reader)
        {
            fileOffset = new FileOffset(reader);
            condition  = reader.ReadExpression();
            then       = reader.ReadStatement();
            otherwise  = reader.ReadStatement();
        }
Exemple #2
0
 public AssertStatement(ComponentReader reader)
 {
     condition            = reader.ReadExpression();
     conditionStartOffset = new FileOffset(reader);
     conditionEndOffset   = new FileOffset(reader);
     message = reader.ReadOption(r => r.ReadExpression());
 }
Exemple #3
0
        public IntConstant(ComponentReader reader)
        {
            value = reader.ReadExpression();

            switch (value.tag)
            {
            case PositiveIntLiteral.Tag:
            case NegativeIntLiteral.Tag:
            // case SpecializedIntLiteral.Tag:
            // public byte tag => (byte) (144 + N); // Where 0 <= N < 8.
            case 144:
            case 145:
            case 146:
            case 147:
            case 148:
            case 149:
            case 150:
            case 151:
            case BigIntLiteral.Tag:
                return;

            default:
                throw new Exception($"{nameof(IntConstant)}: improper tag ({tag})");
            }
        }
Exemple #4
0
 public AsyncForInStatement(ComponentReader reader)
 {
     fileOffset = new FileOffset(reader);
     bodyOffset = new FileOffset(reader);
     variable   = new VariableDeclaration(reader);
     iterable   = reader.ReadExpression();
     body       = reader.ReadStatement();
 }
Exemple #5
0
 public FieldInitializer(ComponentReader reader)
 {
     isSynthetic = reader.ReadByte();
     field       = new FieldReference(reader);
     value       = reader.ReadExpression();
 }
Exemple #6
0
 public ExpressionStatement(ComponentReader reader)
 {
     expression = reader.ReadExpression();
 }
Exemple #7
0
 public YieldStatement(ComponentReader reader)
 {
     fileOffset = new FileOffset(reader);
     flags      = (Flag)reader.ReadByte();
     expression = reader.ReadExpression();
 }
Exemple #8
0
 public SwitchStatement(ComponentReader reader)
 {
     fileOffset = new FileOffset(reader);
     expression = reader.ReadExpression();
     cases      = reader.ReadList(r => new SwitchCase(r));
 }
Exemple #9
0
 public DoStatement(ComponentReader reader)
 {
     fileOffset = new FileOffset(reader);
     body       = reader.ReadStatement();
     condition  = reader.ReadExpression();
 }