首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

以 C# 打造四則運算解譯器(三):詞法分析與 Token 化

     編輯:關於C語言

Token 類別階層

internal abstract class Token { }

internal sealed class NumToken : Token
{
    public double Value { get; }
}

internal sealed class OpToken : Token
{
    public Op Value { get; }
    public Priority Priority { get; }
}

internal enum Op : int { Plus = '+', Minus = '-', Multiply = '*', Divide = '/' }
internal enum Priority { Lv2 = 2, Lv1 = 1, Lv0 = 0 }

Tokenizer 實作

  • internal sealed class Tokenizer { public Token[] Parse(string value); }
  • 掃描字串,忽略空白。
  • 緩衝區收集數字字元,遇非數字轉為 double 產生 NumToken,處理小數點重複錯誤。
  • 遇運算子 + - * / 產生 OpToken,正負號視為一元運算子獨立處理。
  • 未定義字元拋出錯誤。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved