Пример #1
0
 public static Statement CreateModifiedStatement(StatementModifier modifier, Statement node)
 {
     Block block;
     Statement stmt = MapStatementModifier(modifier, out block);
     block.Add(node);
     return stmt;
 }
Пример #2
0
        public static Statement MapStatementModifier(StatementModifier modifier, out Block block)
        {
            switch (modifier.Type)
            {
                case StatementModifierType.If:
                {
                    IfStatement stmt = new IfStatement(modifier.LexicalInfo);
                    stmt.Condition = modifier.Condition;
                    stmt.TrueBlock = new Block();
                    block = stmt.TrueBlock;
                    return stmt;
                }

                case StatementModifierType.Unless:
                {
                    UnlessStatement stmt = new UnlessStatement(modifier.LexicalInfo);
                    stmt.Condition = modifier.Condition;
                    block = stmt.Block;
                    return stmt;
                }

                case StatementModifierType.While:
                {
                    WhileStatement stmt = new WhileStatement(modifier.LexicalInfo);
                    stmt.Condition = modifier.Condition;
                    block = stmt.Block;
                    return stmt;
                }
            }
            throw CompilerErrorFactory.NotImplemented(modifier, string.Format("modifier {0} supported", modifier.Type));
        }
Пример #3
0
        override public object Clone()
        {
            StatementModifier clone = new StatementModifier();

            clone._lexicalInfo       = _lexicalInfo;
            clone._endSourceLocation = _endSourceLocation;
            clone._documentation     = _documentation;
            clone._isSynthetic       = _isSynthetic;
            clone._entity            = _entity;
            if (_annotations != null)
            {
                clone._annotations = (Hashtable)_annotations.Clone();
            }
            clone._type = _type;
            if (null != _condition)
            {
                clone._condition = _condition.Clone() as Expression;
                clone._condition.InitializeParent(clone);
            }
            return(clone);
        }
Пример #4
0
        override public object Clone()
        {
            StatementModifier clone = (StatementModifier)FormatterServices.GetUninitializedObject(typeof(StatementModifier));

            clone._lexicalInfo       = _lexicalInfo;
            clone._endSourceLocation = _endSourceLocation;
            clone._documentation     = _documentation;
            clone._entity            = _entity;
            if (_annotations != null)
            {
                clone._annotations = (Hashtable)_annotations.Clone();
            }

            clone._type = _type;
            if (null != _condition)
            {
                clone._condition = _condition.Clone() as Expression;
                clone._condition.InitializeParent(clone);
            }
            return(clone);
        }
Пример #5
0
 public Statement(StatementModifier modifier)
 {
     this.Modifier = modifier;
 }
Пример #6
0
 public RaiseStatement(LexicalInfo li, Expression exception, StatementModifier modifier)
     : base(li)
 {
     this.Exception = exception;
     this.Modifier = modifier;
 }
Пример #7
0
 public RaiseStatement(LexicalInfo li, Expression exception, StatementModifier modifier) : base(li, exception)
 {
     this.Modifier = modifier;
 }
Пример #8
0
 public RaiseStatement(Expression exception, StatementModifier modifier) : base(exception)
 {
     this.Modifier = modifier;
 }
Пример #9
0
 public override bool Replace(Node existing, Node newNode)
 {
     if (base.Replace(existing, newNode))
     {
         return true;
     }
     if (_modifier == existing)
     {
         this.Modifier = (StatementModifier)newNode;
         return true;
     }
     return false;
 }
Пример #10
0
 public Statement(StatementModifier modifier)
 {
     this.Modifier = modifier;
 }
Пример #11
0
 public Statement(StatementModifier modifier) : base(modifier)
 {
 }
Пример #12
0
 public ReturnStatement(Expression expression, StatementModifier modifier)
 {
     this.Expression = expression;
     this.Modifier   = modifier;
 }
Пример #13
0
 public GeneratorExpression(Expression expression, Expression iterator, StatementModifier filter)
 {
     this.Expression = expression;
     this.Iterator   = iterator;
     this.Filter     = filter;
 }
Пример #14
0
 public ExpressionStatement(LexicalInfo lexicalInfo, Expression expression, StatementModifier modifier)
     : base(lexicalInfo)
 {
     this.Expression = expression;
     this.Modifier = modifier;
 }
Пример #15
0
		public ReturnStatement(Expression expression, StatementModifier modifier)
		{
			this.Expression = expression;
			this.Modifier = modifier;
		}
Пример #16
0
 public override void OnStatementModifier(StatementModifier sm)
 {
     Write(" ");
     WriteKeyword(sm.Type.ToString().ToLower());
     Write(" ");
     Visit(sm.Condition);
 }
Пример #17
0
 public RaiseStatement(Expression exception, StatementModifier modifier)
 {
     this.Exception = exception;
     this.Modifier  = modifier;
 }
Пример #18
0
 public RaiseStatement(Expression exception, StatementModifier modifier)
 {
     this.Exception = exception;
     this.Modifier = modifier;
 }
Пример #19
0
 public ReturnStatement(Expression expression, StatementModifier modifier) : base(expression)
 {
     this.Modifier = modifier;
 }
Пример #20
0
 public GeneratorExpression(Expression expression, Expression iterator, StatementModifier filter)
 {
     this.Expression = expression;
     this.Iterator = iterator;
     this.Filter = filter;
 }
Пример #21
0
 public ReturnStatement(LexicalInfo li, Expression expression, StatementModifier modifier) : base(li)
 {
     this.Expression = expression;
     this.Modifier   = modifier;
 }
Пример #22
0
		override public object Clone()
		{
		
			StatementModifier clone = new StatementModifier();
			clone._lexicalInfo = _lexicalInfo;
			clone._endSourceLocation = _endSourceLocation;
			clone._documentation = _documentation;
			clone._isSynthetic = _isSynthetic;
			clone._entity = _entity;
			if (_annotations != null) clone._annotations = (Hashtable)_annotations.Clone();
			clone._type = _type;
			if (null != _condition)
			{
				clone._condition = _condition.Clone() as Expression;
				clone._condition.InitializeParent(clone);
			}
			return clone;


		}
Пример #23
0
 public ExpressionStatement(LexicalInfo lexicalInfo, Expression expression, StatementModifier modifier)
     : base(lexicalInfo)
 {
     this.Expression = expression;
     this.Modifier   = modifier;
 }
Пример #24
0
	protected StatementModifier  stmt_modifier() //throws RecognitionException, TokenStreamException
{
		StatementModifier m;
		
		IToken  i = null;
		IToken  u = null;
		IToken  w = null;
		
				m = null;
				Expression e = null;
				IToken t = null;
				StatementModifierType type = StatementModifierType.None;
			
		
		try {      // for error handling
			{
				switch ( LA(1) )
				{
				case IF:
				{
					i = LT(1);
					match(IF);
					if (0==inputState.guessing)
					{
						t = i; type = StatementModifierType.If;
					}
					break;
				}
				case UNLESS:
				{
					u = LT(1);
					match(UNLESS);
					if (0==inputState.guessing)
					{
						t = u; type = StatementModifierType.Unless;
					}
					break;
				}
				case WHILE:
				{
					w = LT(1);
					match(WHILE);
					if (0==inputState.guessing)
					{
						t = w; type = StatementModifierType.While;
					}
					break;
				}
				default:
				{
					throw new NoViableAltException(LT(1), getFilename());
				}
				 }
			}
			e=boolean_expression();
			if (0==inputState.guessing)
			{
				
						m = new StatementModifier(ToLexicalInfo(t));
						m.Type = type;
						m.Condition = e;
					
			}
		}
		catch (RecognitionException ex)
		{
			if (0 == inputState.guessing)
			{
				reportError(ex, "stmt_modifier");
				recover(ex,tokenSet_14_);
			}
			else
			{
				throw ex;
			}
		}
		return m;
	}
Пример #25
0
 public GeneratorExpression(Expression expression, Expression iterator, StatementModifier filter) : base(expression, iterator, filter)
 {
 }