Esempio n. 1
0
 private static bool IsStatementExpression(SpliceExpression node)
 {
     if (node.ParentNode == null)
     {
         return(false);
     }
     return(node.ParentNode.NodeType == NodeType.ExpressionStatement);
 }
Esempio n. 2
0
        public override void OnSpliceExpression(SpliceExpression node)
        {
            if (IsStatementExpression(node))
            {
                Push(LiftStatement(node.Expression));
                return;
            }

            Push(LiftExpression(node.Expression));
        }
Esempio n. 3
0
        public override void OnSpliceExpression(SpliceExpression node)
        {
            if (InsideSerializedQuasiquote())
            {
                SerializeSpliceExpression(node);
                return;
            }

            if (IsStatementExpression(node))
            {
                Push(LiftStatement(node.Expression));
                return;
            }

            Push(LiftExpression(node.Expression));
        }
Esempio n. 4
0
        override public object Clone()
        {
            SpliceExpression clone = (SpliceExpression)FormatterServices.GetUninitializedObject(typeof(SpliceExpression));

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

            clone._expressionType = _expressionType;
            if (null != _expression)
            {
                clone._expression = _expression.Clone() as Expression;
                clone._expression.InitializeParent(clone);
            }
            return(clone);
        }
Esempio n. 5
0
        override public object Clone()
        {
            SpliceExpression clone = new SpliceExpression();

            clone._lexicalInfo       = _lexicalInfo;
            clone._endSourceLocation = _endSourceLocation;
            clone._documentation     = _documentation;
            clone._isSynthetic       = _isSynthetic;
            clone._entity            = _entity;
            if (_annotations != null)
            {
                clone._annotations = (Hashtable)_annotations.Clone();
            }
            clone._expressionType = _expressionType;
            if (null != _expression)
            {
                clone._expression = _expression.Clone() as Expression;
                clone._expression.InitializeParent(clone);
            }
            return(clone);
        }
Esempio n. 6
0
	protected Expression  splice_expression() //throws RecognitionException, TokenStreamException
{
		Expression e;
		
		IToken  begin = null;
		
			e = null;
		
		
		try {      // for error handling
			begin = LT(1);
			match(SPLICE_BEGIN);
			e=atom();
			if (0==inputState.guessing)
			{
				
						e = new SpliceExpression(ToLexicalInfo(begin), e);
					
			}
		}
		catch (RecognitionException ex)
		{
			if (0 == inputState.guessing)
			{
				reportError(ex, "splice_expression");
				recover(ex,tokenSet_44_);
			}
			else
			{
				throw ex;
			}
		}
		return e;
	}
Esempio n. 7
0
		override public object Clone()
		{
		
			SpliceExpression clone = new SpliceExpression();
			clone._lexicalInfo = _lexicalInfo;
			clone._endSourceLocation = _endSourceLocation;
			clone._documentation = _documentation;
			clone._isSynthetic = _isSynthetic;
			clone._entity = _entity;
			if (_annotations != null) clone._annotations = (Hashtable)_annotations.Clone();
			clone._expressionType = _expressionType;
			if (null != _expression)
			{
				clone._expression = _expression.Clone() as Expression;
				clone._expression.InitializeParent(clone);
			}
			return clone;


		}
Esempio n. 8
0
 public override void OnSpliceExpression(SpliceExpression e)
 {
     WriteOperator("$(");
     Visit(e.Expression);
     WriteOperator(")");
 }