Beispiel #1
0
        public string GetShownString(Token tk)
        {
            if (tk == null)
            {
                return "";
            }

            switch (tk.Type)
            {
                case TokenType.Condition:
                    return "条件";
                case TokenType.DT:
                    return "小数处理";
                case TokenType.Fixed:
                    return "内(" + GetFixItemName(tk.Value.ToString()) + ")";
                case TokenType.Id:
                    return GetPRItemName(tk.Value.ToString());
                case TokenType.NE:
                    return "≠";
                case TokenType.Sum:
                    return "求和";
                case TokenType.SumFlag:
                    return GetSumFlagName(tk.Value.ToString());
                default:
                    return tk.ToString();
            }
        }
Beispiel #2
0
 public ConSyntaxTreeNode(Token t)
     : base(t)
 {
 }
Beispiel #3
0
 public SumSyntaxTreeNode(Token t, ICalcFunction icalc)
     : base(t)
 {
     this.icalc = icalc;
 }
Beispiel #4
0
 public SumFlagSyntaxTreeNode(Token t)
     : base(t)
 {
 }
Beispiel #5
0
 public OpSyntaxTreeNode(Token t)
     : base(t)
 {
 }
Beispiel #6
0
 public NumSynTaxTreeNode(Token t)
     : base(t)
 {
 }
Beispiel #7
0
 public SyntaxTreeNode(Token t)
 {
     tk = t;
     children = new List<SyntaxTreeNode>();
 }
Beispiel #8
0
        /// <summary>
        /// 分析表达式,生成token、列表和语法树。
        /// </summary>
        public void Parse()
        {
            tree = null;

            curTok = scanner.GetToken();

            if (null == CurToken)
            {
                return;
            }

            tree = Exp();

            if (CurToken != null)
            {
                throw new ParseException("unexpected token:", CurToken);
            }
        }
Beispiel #9
0
 private void MatchToken(TokenType expected)
 {
     if (CurToken.Type == expected)
     {
         curTok = scanner.GetToken();
     }
     else
     {
         throw new ParseException("unexpected token:", CurToken);
     }
 }
Beispiel #10
0
 public ParseException(string message)
     : base(message)
 {
     occuToken = null;
 }
Beispiel #11
0
 public ParseException(string message, Token tk)
     : base(message)
 {
     occuToken = tk;
 }
Beispiel #12
0
 public ParseException(string message, Token tk, Exception inner)
     : base(message, inner)
 {
     occuToken = tk;
 }
Beispiel #13
0
 public ParseException(string message, Exception inner)
     : base(message, inner)
 {
     occuToken = null;
 }
Beispiel #14
0
 public Token(Token t)
 {
     tktppe = t.tktppe;
     value = t.value;
 }
Beispiel #15
0
 public TokenEx(Token t, string shown)
     : base(t)
 {
     this.shown = shown;
 }