实现方法
改语法分析器附带词法分析器;
通过将词法分析的单词压入语法分析栈中,采用 LL(1) 型文法进行分析;
实现功能
能够识别简单语法,包括:
1.变量声明;
2.变量赋值;
3.变量的运算;
4.if,for,while等循环或条件语句;
5.自动过滤注释语句。
文法语言
<程序> → <语句><程序> | Ɛ;
<语句> → <变量定义语句> | <赋值语句> | <函数调用语句> | <if语句>| <循环语句> | Ɛ
<变量定义语句> → <变量类型><标识符表>;
<赋值语句> → <标识符> = <表达式>;
<函数调用语句> → <标识符> ( <标识符表> );
<if语句> → if ( <条件表达式> ) { <语句> } <else语句>
<else语句> → else{ <语句> } | Ɛ
<循环语句> → while ( <条件表达式> ) { <语句> }
<标识符表> → <标识符>| <标识符表>,<标识符>
<条件表达式> → <表达式><比较运算符><表达式>
<比较运算符> → > | >= | < | <= | != | ==
<变量类型>→ char | short | int | long | float | double
<表达式> → +T | -T | T | <表达式> + T | <表达式>-T
T → F | T*F | T/F
F → <标识符> | <无符号整数> | (<表达式 >)
正确示例截图
错误示例截图
源码获取
源码和可运行的程序jar包均已打包,获取方式如下:
CSDN资源下载链接:
https://download.csdn.net/download/weixin_44155115/12284107
公众号获取:
关注微信公众号 “科技毒瘤君”,回复 “语法分析器”