文章出處

解決CSharpGL使用CGCompiler時發現的幾個問題

為了獲取CSharpShadingLanguage的token流,我設計了這樣一個文法:

<Expression> ::= "~" "!" "@" "#" "%" "^" "&" "*" "(" ")" "-" "+" "=" "{" "}" "[" "]" ":" ";" "<" ">" "," "." "?" "/" "~=" "!=" "%=" "^=" "&=" "*=" "-=" "+=" "<=" ">=" "/=" "&&" "++" "<<" ">>" constString identifier number;

這當然不能進行語法分析,但是足以進行詞法分析。

在使用過程中發現CGCompiler有幾個bug,在此記錄并fix掉。

 

重復的token類型

文法中有identifier時,TokenType的枚舉類型里會出現重復的identifier。

此問題已解決(大概吧)。只需在ContextfreeGrammarEnumTokenTypeSG.cs中加入如下判定。

 

GetCharType()沒有判定@符號

此問題已解決。在ContextfreeGrammarLexicalAnalyzerSG.cs的GenerateLexicalAnalyzerMethodGetCharType()方法中加入3行固定代碼即可。出現此問題是因為我以前漏掉了對@這個符號的解析。

 

GetDivideOpt()沒有判定跳過單行注釋

已解決。只需在ContextfreeGrammarLexicalAnalyzerSG.cs文件中補充如下代碼即可。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()