解决CSharpGL使用CGCompiler时发现的几个问题
2016-02-23 13:12
302 查看
[b]解决CSharpGL使用CGCompiler时发现的几个问题 [/b]
为了获取CSharpShadingLanguage的token流,我设计了这样一个文法:
这当然不能进行语法分析,但是足以进行词法分析。
在使用过程中发现CGCompiler有几个bug,在此记录并fix掉。
此问题已解决(大概吧)。只需在ContextfreeGrammarEnumTokenTypeSG.cs中加入如下判定。
此问题已解决。在ContextfreeGrammarLexicalAnalyzerSG.cs的GenerateLexicalAnalyzerMethodGetCharType()方法中加入3行固定代码即可。出现此问题是因为我以前漏掉了对@这个符号的解析。
已解决。只需在ContextfreeGrammarLexicalAnalyzerSG.cs文件中补充如下代码即可。
为了获取CSharpShadingLanguage的token流,我设计了这样一个文法:
<Expression> ::= "~" "!" "@" "#" "%" "^" "&" "*" "(" ")" "-" "+" "=" "{" "}" "[" "]" ":" ";" "<" ">" "," "." "?" "/" "~=" "!=" "%=" "^=" "&=" "*=" "-=" "+=" "<=" ">=" "/=" "&&" "++" "<<" ">>" constString identifier number; |
在使用过程中发现CGCompiler有几个bug,在此记录并fix掉。
重复的token类型
文法中有identifier时,TokenType的枚举类型里会出现重复的identifier。此问题已解决(大概吧)。只需在ContextfreeGrammarEnumTokenTypeSG.cs中加入如下判定。
GetCharType()没有判定@符号
此问题已解决。在ContextfreeGrammarLexicalAnalyzerSG.cs的GenerateLexicalAnalyzerMethodGetCharType()方法中加入3行固定代码即可。出现此问题是因为我以前漏掉了对@这个符号的解析。
GetDivideOpt()没有判定跳过单行注释
已解决。只需在ContextfreeGrammarLexicalAnalyzerSG.cs文件中补充如下代码即可。
相关文章推荐
- C#环境
- C#中dynamic的正确用法
- c# 元组Tuple
- 关于使用个推初始化个推实例的过程中出现的问题
- c#笔试题(一)
- C# ClipboardHelper (系统复制粘贴辅助工具)
- C#强大的编程功能
- C# 不支持关键字: “.;database”。
- C#ReadLine()和ReadKey()区别
- C# winform程序怎么打包成安装项目(图解)
- C#Winform程序如何发布并自动升级(图解)
- 使用代理模式来进行C#设计模式开发的基础教程
- C# 自定义控件的实现
- C#File类
- C#中方法,属性与索引器
- C# 中的委托和事件
- C#ContextMenusStrip 和MenusStrip的区别
- C#Winform存储过程的调用方法
- C#中获取日期之间天数的方法代码,及DataTime方法的日期格式整理
- 通用excel数据导出/转换(二)