文章出處
文章列表
解決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文件中補充如下代碼即可。
文章列表
全站熱搜