日期:2014-05-18  浏览次数:20966 次

请教一下词法分析的问题! 高手来
请教一下高手 词法分析 是个什么概念? 谁能给介绍一下! 谢谢了! 最好能提供一个例子 谢谢各位了!
希望大家多多发表自己的见解!

------解决方案--------------------
请参考:
http://210.33.23.34/course/bianyi/ziyuan\jiaocai\jiangyi\Chap03.ppt
例子:
http://chinasf.cnblogs.com/archive/2005/04/22/143449.aspx
------解决方案--------------------
定义
输入产生式定义 C# 源文件的词法结构。C# 程序中的每个源文件都必须符合此词法文法产生式。 

input:(输入:) 
input-sectionopt(输入节可选) 
input-section:(输入节:) 
input-section-part(输入节部分)
input-section input-section-part(输入节 输入节部分) 
input-section-part:(输入节部分:) 
input-elementsopt new-line(输入元素可选 新行)
pp-directive(pp 指令) 
input-elements:(输入元素:) 
input-element(输入元素)
input-elements input-element(输入元素 输入元素) 
input-element:(输入元素:) 
whitespace(空白)
comment(注释)
token(标记) 

对 C# 源文件的词法处理就是将文件缩减成标记序列,该序列然后即成为句法分析的输入。行结束符、空白和注释可用于分隔标记,预处理指令可导致跳过源文件中的某些节,除此之外这些词法元素对 C# 程序的句法结构没有任何影响。

当有若干词法文法产生式与源文件中的一个字符序列匹配时,词法处理总是构成尽可能最长的词法元素。例如,字符序列 // 按单行注释的开头处理,这是因为该词法元素比一个 / 标记要长。
参考MSDN
----------------------
http://www.openweb.cn/dotnet/1593.html
c# 写的词法分析器
------解决方案--------------------
定义
输入产生式定义 C# 源文件的词法结构。C# 程序中的每个源文件都必须符合此词法文法产生式。 

input:(输入:) 
input-sectionopt(输入节可选) 
input-section:(输入节:) 
input-section-part(输入节部分)
input-section input-section-part(输入节 输入节部分) 
input-section-part:(输入节部分:) 
input-elementsopt new-line(输入元素可选 新行)
pp-directive(pp 指令) 
input-elements:(输入元素:) 
input-element(输入元素)
input-elements input-element(输入元素 输入元素) 
input-element:(输入元素:) 
whitespace(空白)
comment(注释)
token(标记) 

对 C# 源文件的词法处理就是将文件缩减成标记序列,该序列然后即成为句法分析的输入。行结束符、空白和注释可用于分隔标记,预处理指令可导致跳过源文件中的某些节,除此之外这些词法元素对 C# 程序的句法结构没有任何影响。

当有若干词法文法产生式与源文件中的一个字符序列匹配时,词法处理总是构成尽可能最长的词法元素。例如,字符序列 // 按单行注释的开头处理,这是因为该词法元素比一个 / 标记要长。
参考MSDN
----------------------
http://www.openweb.cn/dotnet/1593.html
c# 写的词法分析器
------解决方案--------------------
定义
输入产生式定义 C# 源文件的词法结构。C# 程序中的每个源文件都必须符合此词法文法产生式。 

input:(输入:) 
input-sectionopt(输入节可选) 
input-section:(输入节:) 
input-section-part(输入节部分)
input-section input-section-part(输入节 输入节部分) 
input-section-part:(输入节部分:) 
input-elementsopt new-line(输入元素可选 新行)
pp-directive(pp 指令) 
input-elements:(输入元素:) 
input-element(输入元素)
input-elements input-element(输入元素 输入元素) 
input-element:(输入元素:) 
whitespace(空白)
comment(注释)
token(标记) 

对 C# 源文件的词法处理就是将文件缩减成标记序列,该序列然后即成为句法分析的输入。行结束符、空白和注释可用于分隔标记,预处理指令可导致跳过源文件中的某些节,除此之外这些词法元素对 C# 程序的句法结构没有任何影响。

当有若干词法文法产生式与源文件中的一个字符序列匹配时,词法处理总是构成尽可能最长的词法元素。例如,字符序列 // 按单行注释的开头处理,这是因为该词法元素比一个 / 标记要长。
参考MSDN
----------------------
http://www.openweb.cn/dotnet/1593.html
c# 写的词法分析器