public override SqlObject VisitNumberPathExpression([NotNull] sqlParser.NumberPathExpressionContext context)
        {
            Contract.Requires(context != null);

            SqlPathExpression pathExpression = (SqlPathExpression)this.Visit(context.path_expression());
            SqlNumberLiteral  number         = SqlNumberLiteral.Create(CstToAstVisitor.GetNumber64ValueFromNode(context.NUMERIC_LITERAL()));

            return(SqlNumberPathExpression.Create(pathExpression, number));
        }
        public override SqlObject VisitStringPathExpression([NotNull] sqlParser.StringPathExpressionContext context)
        {
            Contract.Requires(context != null);

            SqlPathExpression pathExpression = (SqlPathExpression)this.Visit(context.path_expression());
            SqlStringLiteral  stringIndex    = SqlStringLiteral.Create(CstToAstVisitor.GetStringValueFromNode(context.STRING_LITERAL()));

            return(SqlStringPathExpression.Create(pathExpression, stringIndex));
        }
        public override SqlObject VisitIdentifierPathExpression([NotNull] sqlParser.IdentifierPathExpressionContext context)
        {
            Contract.Requires(context != null);

            SqlPathExpression pathExpression = (SqlPathExpression)this.Visit(context.path_expression());
            SqlIdentifier     identifier     = SqlIdentifier.Create(context.IDENTIFIER().GetText());

            return(SqlIdentifierPathExpression.Create(parentPath: pathExpression, value: identifier));
        }
 private SqlNumberPathExpression(SqlPathExpression parentPath, SqlNumberLiteral value)
     : base(SqlObjectKind.NumberPathExpression, parentPath)
 {
     this.Value = value;
 }
 public static SqlNumberPathExpression Create(SqlPathExpression parentPath, SqlNumberLiteral value)
 {
     return(new SqlNumberPathExpression(parentPath, value));
 }
Beispiel #6
0
 protected SqlPathExpression(SqlPathExpression parentPath)
 {
     this.ParentPath = parentPath;
 }
 protected SqlPathExpression(SqlObjectKind kind, SqlPathExpression parentPath)
     : base(kind)
 {
     this.ParentPath = parentPath;
 }