编译原理:TINY语言的语法、词法单元与文法的最全总结

您所在的位置:网站首页 r语言repeat改写成while 编译原理:TINY语言的语法、词法单元与文法的最全总结

编译原理:TINY语言的语法、词法单元与文法的最全总结

2023-09-13 14:49| 来源: 网络整理| 查看: 265

下面是一段YINY语言源代码:

{ Sample program in TINY language - computes factorial } read x; { input an integer } if 0 < x then { don't compute if x 和=。

TINY的词法单元为:

词法单元类型

词法单元

词素(例)

关键字

(预定义符)

IF

if

THEN

then

ELSE

else

END

end

REPEAT

repeat

UNTIL

until

READ

read

WRITE

write

自定义符

ID

myName

NUM

123

运算符

ASSIGN

:=

EQ

=

LT

=

TINY的文法为:

非终结符

含义

展开

program

程序

stmt_seq

stmt_seq

若干条语句

stmt_seq SEMI stmt | stmt

stmt

单条语句

if_stmt | repeat_stmt | assign_stmt | read_stmt | write_stmt | error

if_stmt

判断语句

IF exp THEN stmt_seq END | IF exp THEN stmt_seq ELSE stmt_seq END

repeat_stmt

循环语句

REPEAT stmt_seq UNTIL exp

assign_stmt

赋值语句

ID ASSIGN exp

read_stmt

输入语句

READ ID

write_stmt

输出语句

WRITE exp

exp

判断表达式

simple_exp LT simple_exp | simple_exp EQ simple_exp| simple_exp

simple_exp

加减表达式

simple_exp PLUS term | simple_exp MINUS term | term

term

乘除表达式

term TIMES factor | term OVER factor | factor

factor

括号表达式

LPAREN exp RPAREN | NUM | ID | error

即:

program->stmt_seq stmt_seq->stmt_seq;stmt stmt_seq->stmt stmt->if_stmt stmt->repeat_stmt stmt->assign_stmt stmt->read_stmt stmt->write_stmt stmt->error if_stmt->IF exp THEN stmt_seq END if_stmt->IF exp THEN stmt_seq ELSE stmt_seq END repeat_stmt->REPEAT stmt_seq UNTIL exp assign_stmt->ID:=exp read_stmt->READ ID write_stmt->WRITE exp exp->simple_expsimple_exp=simple_exp simple_exp->simple_exp+term simple_exp->simple_exp-term term->term*factor term->term/factor factor->(exp) factor->NUM factor->ID factor->error

如果这篇文章对你有帮助,请给博主点个赞吧!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_41112170/article/details/106880776 本文作者:乔卿



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3