Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

python实现及其解释器应用:实现语法支持

$
0
0
python实现及其解释器应用:实现语法支持

23分钟前来源:CSDN博客

第九部分开始了对语言特性的支持,根据语言定义BNF:

program→compound_statement DOT

compound_statement→BEGIN statement_list END

statement_list→statement | statement SEMI statement_list

statement→compound_statement | assignment_statement | empty

assignment_statement→variable ASSIGN expr

variable→ID

empty→

expr→term ((PLUS | MINUS) TERM)

term→factor ((MUL | DIV) factor)

factor→PLUS factor |MINUS factor | INTEGER | LPAREN expr RPAREN | variable

知识点梳理 计算机程序语言的一些基本知识,譬如什么是表达式(expression),什么是语句(statement)。 符号表。由于引入了变量,如何再次访问到这些变量呢?把他们放到符号表中,这里只有一个全局符号表GLOBAL_SCOPE 新的grammar规则设计的理论知识其实就是LL(1)。什么是LL(1)? 练习 1. 关键字的大小写敏感问题

在读取id的时候,根据ID的大写字符串去关键字中搜索,如果有则返回大写关键字,也就是说不管程序中的关键字是大写还是小写,内部始终是用的大写的方式。

token = RESERVED_KEYWORDS.get(result.upper, Token(ID, result))2. 把’/’转换成关键字div RE

Viewing all articles
Browse latest Browse all 9596

Trending Articles