示例#1
0
 protected virtual object EvalPropertyName(ParseTree tree, params object[] paramlist)
 {
     return((string)this.GetValue(tree, TokenType.IDENT, 0));
 }
示例#2
0
 protected virtual object EvalParameterName(ParseTree tree, params object[] paramlist)
 {
     return(this.GetValue(tree, TokenType.ObjectName, 0));
 }
示例#3
0
 protected virtual object EvalCommand(ParseTree tree, params object[] paramlist)
 {
     return(this.GetValue(tree, TokenType.InsertFile, 0) ?? this.GetValue(tree, TokenType.ViewFile, 0) ?? this.GetValue(tree, TokenType.FormatCondition, 0) ?? this.GetValue(tree, TokenType.ComputedColumn, 0) ?? this.GetValue(tree, TokenType.Table, 0) ?? this.GetValue(tree, TokenType.Relation, 0) ?? this.GetValue(tree, TokenType.Connection, 0) ?? this.GetValue(tree, TokenType.Parameter, 0));
 }
示例#4
0
 protected virtual object EvalCOMPUTED_RETURNTYPE(ParseTree tree, params object[] paramlist)
 {
     return(this.GetValue(tree, TokenType.STRING, 0) ?? this.GetValue(tree, TokenType.INTEGER, 0) ?? this.GetValue(tree, TokenType.DECIMAL, 0) ?? this.GetValue(tree, TokenType.DATETIME, 0) ?? this.GetValue(tree, TokenType.BOOLEAN, 0));
 }
示例#5
0
        /// <summary>
        /// this implements the evaluation functionality, cannot be used directly
        /// </summary>
        /// <param name="tree">the parsetree itself</param>
        /// <param name="paramlist">optional input parameters</param>
        /// <returns>a partial result of the evaluation</returns>
        internal object Eval(ParseTree tree, params object[] paramlist)
        {
            object Value;

            switch (Token.Type)
            {
            case TokenType.Start:
                Value = EvalStart(tree, paramlist);
                break;

            case TokenType.COMPUTED_RETURNTYPE:
                Value = EvalCOMPUTED_RETURNTYPE(tree, paramlist);
                break;

            case TokenType.Command:
                Value = EvalCommand(tree, paramlist);
                break;

            case TokenType.InsertFile:
                Value = EvalInsertFile(tree, paramlist);
                break;

            case TokenType.ViewFile:
                Value = EvalViewFile(tree, paramlist);
                break;

            case TokenType.FormatCondition:
                Value = EvalFormatCondition(tree, paramlist);
                break;

            case TokenType.ComputedColumn:
                Value = EvalComputedColumn(tree, paramlist);
                break;

            case TokenType.Table:
                Value = EvalTable(tree, paramlist);
                break;

            case TokenType.Relation:
                Value = EvalRelation(tree, paramlist);
                break;

            case TokenType.Connection:
                Value = EvalConnection(tree, paramlist);
                break;

            case TokenType.Parameter:
                Value = EvalParameter(tree, paramlist);
                break;

            case TokenType.ObjectName:
                Value = EvalObjectName(tree, paramlist);
                break;

            case TokenType.ColumnName:
                Value = EvalColumnName(tree, paramlist);
                break;

            case TokenType.TableName:
                Value = EvalTableName(tree, paramlist);
                break;

            case TokenType.TableWithColumns:
                Value = EvalTableWithColumns(tree, paramlist);
                break;

            case TokenType.RelationName:
                Value = EvalRelationName(tree, paramlist);
                break;

            case TokenType.ConnectionName:
                Value = EvalConnectionName(tree, paramlist);
                break;

            case TokenType.ParameterName:
                Value = EvalParameterName(tree, paramlist);
                break;

            case TokenType.FormatFilter:
                Value = EvalFormatFilter(tree, paramlist);
                break;

            case TokenType.PropertyName:
                Value = EvalPropertyName(tree, paramlist);
                break;

            case TokenType.PropertyValue:
                Value = EvalPropertyValue(tree, paramlist);
                break;

            case TokenType.Property:
                Value = EvalProperty(tree, paramlist);
                break;

            default:
                Value = Token.Text;
                break;
            }
            return(Value);
        }
示例#6
0
 protected object GetValue(ParseTree tree, TokenType type, int index)
 {
     return(GetValue(tree, type, ref index));
 }