程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 仿查詢分析器的C#計算器——3.詞法分析(4)

仿查詢分析器的C#計算器——3.詞法分析(4)

編輯:關於C語言

這裡需要使用的XML如下:

<?XML version="1.0" encoding="utf-8" ?>
< TokenRecord>
  <TokenKeyWord>
    <!--以下字符串處理函數記號對象-->
    <Token Word="mid" Class="TokenMid" Example="mid('abcdefg',2,3) = 'bcd'" />
    <Token Word="left" Class="TokenLeft" Example="left('abcdefg',5) = 'abcde'" />
    <Token Word="right" Class="TokenRight" Example="right('abcdefg',5) = 'cdefg'" />
    <Token Word="string" Class="TokenToString" Example="string(53.6) = '53.6'" />
    <!--以下為數學運算記號對象-->
    <Token Word="round" Class="TokenRound" Example="round(0.12345,3) = 0.123" />
    <Token Word="abs" Class="TokenAbs" Example="abs(-5) = 5" />
    <Token Word="max" Class="TokenMax" Example="max(3,5) = 5" />
    <Token Word="min" Class="TokenMin" Example="min(3,5) = 3" />
    <!--如果希望取余采用VB的Mod函數,形如Mod(5.4,2) = 1.4,將TokenMod修改為繼承自TokenMethod即可,此時用%必須形如% (5.4,2)-->
    <!--<Token Word="mod" Class="TokenMod" Example="5.4 mod 2 = 1.4,mod後必須帶空格" />-->
    <Token Word="pow" Class="TokenPow" Example="pow(2,3) = 8" />
    <!--以下為三角函數記號對象,均采用角度計算而非弧度-->
    <Token Word="sin" Class="TokenSin" Example="sin(30) = 0.5" />
    <Token Word="asin" Class="TokenAsin" Example="asin(0.5) = 30" />
    <Token Word="cos" Class="TokenCos" Example="cos(60) = 0.5" />
    <Token Word="acos" Class="TokenAcos" Example="acos(0.5) = 60" />
    <Token Word="tan" Class="TokenTan" Example="tan(45) = 1" />
    <Token Word="atan" Class="TokenAtan" Example="atan(1) = 45" />
    <Token Word="atan2" Class="TokenAtan2" Example="atan2(30,30) = 45" />
    <!--以下為邏輯運算記號對象,可以同時表示為關鍵字和運算符,因為它們的格式一致,都為true Operate false-->
    <Token Word="and" Class="TokenAnd" Example="true and false = false" />
    <Token Word="or" Class="TokenOr" Example="true or false = true" />
    <Token Word="not" Class="TokenNot" Example="not true = false" />
    <Token Word="xor" Class="TokenXor" Example="true xor false = true" />
    <!--以下為常量記號對象-->
    <Token Word="pi" Class="TokenValue" Example="pi*1 = 3.1415926" />
    <Token Word="e" Class="TokenValue" Example="e*1 = 2.71828" />
    <Token Word="true" Class="TokenValue" Example="true and false = false" />
    <Token Word="false" Class="TokenValue" Example="true and false = false" />
    <!--以下為其他記號對象-->
    <Token Word="if" Class="TokenIf" Example="if(3>5,12,24) = 24" />
  </TokenKeyWord>
  <TokenSymbol>
    <!--以下為分隔符-->
    <Token Word="(" Class="TokenLeftBracket" Example="2*(5-3) = 4" />
    <Token Word=")" Class="TokenRightBracket" Example="2*(5-3) = 4" />
    <Token Word="," Class="TokenComma" Example="left('abcdefg',5) = 'abcde'" />
    <!--以下為數學運算符-->
    <Token Word="+" Class="TokenPlus" Example="2+3 = 5 或 'abc' + 'def' = 'abcdef'" />
    <Token Word="-" Class="TokenMinus" Example="5-3 = 2" />
    <Token Word="*" Class="TokenMultiply" Example="3*4 = 12" />
    <Token Word="/" Class="TokenDivide" Example="8/2 = 4" />
    <Token Word="%" Class="TokenMod" Example="5.4%2 = 1.4" />
    <!--如果希望求冪采用VB的^算法,形如2^3 = 8,將TokenPow修改為繼承自TokenArithmetic即可,此時用pow則必須輸入2 pow 3, pow後必須帶空格-->
    <!--<Token Word="^" Class="TokenPow" Example="^(2,3) = 8" />-->
    <!--以下為比較運算符-->
    <Token Word="=" Class="TokenEqual" Example="if(3=5,12,24) = 24" />
    <Token Word="==" Class="TokenEqual" Example="if(3==5,12,24) = 24" />
    <Token Word="&lt;&gt;" Class="TokenNotEqual" Example="if(3&lt;&gt;5,12,24) = 12" />
    <Token Word="!=" Class="TokenNotEqual" Example="if(3!=5,12,24) = 12" />
    <Token Word="&gt;" Class="TokenGreatThan" Example="if(3&gt;5,12,24) = 24" />
    <Token Word="&gt;=" Class="TokenGreatOrEqual" Example="if(3&gt;=5,12,24) = 24" />
    <Token Word="&lt;" Class="TokenLessThan" Example="if(3&lt;5,12,24) = 12" />
    <Token Word="&lt;=" Class="TokenLessOrEqual" Example="if(3&lt;=5,12,24) = 12" />
    <!--以下為邏輯運算符,未定義短路操作,可自行實現-->
    <Token Word="!" Class="TokenNot" Example="!true = false" />
    <Token Word="&amp;" Class="TokenAnd" Example="true &amp; false = false" />
    <Token Word="&amp;&amp;" Class="TokenAnd" Example="true &amp;&amp; false = false" />
    <Token Word="|" Class="TokenOr" Example="true | false = true" />
    <Token Word="||" Class="TokenOr" Example="true || false = true" />
  </TokenSymbol>
< /TokenRecord>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved