예제 #1
0
	public ConstExpression  constantref() //throws RecognitionException, TokenStreamException
{
		ConstExpression lre;
		
		IToken  t1 = null;
		IToken  t2 = null;
		IToken  t3 = null;
		IToken  t5 = null;
		IToken  t6 = null;
		lre = null;
		
		switch ( LA(1) )
		{
		case NUM_INT:
		{
			t1 = LT(1);
			match(NUM_INT);
			if (0==inputState.guessing)
			{
				lre = new ConstExpression(t1.getText(), ConstExpressionType.IntLiteral);
			}
			break;
		}
		case NUM_LONG:
		{
			t2 = LT(1);
			match(NUM_LONG);
			if (0==inputState.guessing)
			{
				lre = new ConstExpression(t2.getText(), ConstExpressionType.LongLiteral);
			}
			break;
		}
		case NUM_FLOAT:
		{
			t3 = LT(1);
			match(NUM_FLOAT);
			if (0==inputState.guessing)
			{
				lre = new ConstExpression(t3.getText(), ConstExpressionType.FloatLiteral);
			}
			break;
		}
		case STRING_LITERAL:
		{
			t5 = LT(1);
			match(STRING_LITERAL);
			if (0==inputState.guessing)
			{
				lre = new ConstExpression(t5.getText(), ConstExpressionType.StringLiteral);
			}
			break;
		}
		case CHAR_LITERAL:
		{
			t6 = LT(1);
			match(CHAR_LITERAL);
			if (0==inputState.guessing)
			{
				lre = new ConstExpression(t6.getText(), ConstExpressionType.CharLiteral);
			}
			break;
		}
		default:
		{
			throw new NoViableAltException(LT(1), getFilename());
		}
		 }
		return lre;
	}
예제 #2
0
		public virtual void VisitConstExpression(ConstExpression expression)
		{
			VisitCommonExpNodes(expression);
		}
예제 #3
0
파일: TreeWalker.cs 프로젝트: atczyc/castle
		public override void VisitConstExpression(ConstExpression expression)
		{
			nodeStack.Push( CurrentNode.Nodes.Add("ConstExpression " + expression.Value + " " + expression.ValueType ));
			CurrentNode.Tag = expression;

			base.VisitConstExpression(expression);

			nodeStack.Pop();
		}