smartc文法.txt

来自「词法分析程序」· 文本 代码 · 共 56 行

TXT
56
字号
	关键字:	if,else,int,return,void,while for;
	专用符号:	+  -  *  /  <  <=  >  >=  ==  !=  =  ;  , (  )  [  ]  {  }  /*  */ 
	其他标记是ID和NUM,通过下列正则表达式定义:
		ID = letter letter*
		num = digit digit*
		letter = a|..|z|A|..|Z
		digit = 0|..|9
	小写和大写字母是有区别的。

     C-Minus语言的EBNF语法:
1.	program -> declaration-list
2.	declaration-list -> declaration { declaration }
3.	declaration -> var-declaration | fun-declaration 
4.	var-declaration -> type-specifier ID ; |  type-specifier ID [ NUM ] ;
5.	type-specifier -> int | void 

6.	fun-declaration -> type-specifier ID ( params ) compound-stmt
7.	params -> params-list | void
8.	param-list ->  param {  , param }
9.	param -> type-specifier ID | type-specifier ID [ ]
10.	compound-stmt -> { local-declarations statement-list}  (注:该处左右大括号是真正意义上的大括号 )
11.	local-declarations ->  var-declaration  {  var-declaration  }| empty
12.	statement-list ->  statement  { statement }| empty

13.	statement -> expression-stmt | compound-stmt | selection-stmt | iteration-stmt |  return-stmt
14.	expression-stmt -> expression ; | ;
15.	selection-stmt -> if ( expression ) statement [ else statement ](注:该处左右中括号是唯一表示内容可选的中括号 )
16.	iteration-stmt -> while ( expression ) statement|for(expression;expression;expression) statement
17.	return-stmt -> return ; | return expression;
18.	expression -> var = expression | simple-expression|logical-expression
19.	var -> ID | ID [value]
20.	simple-expression -> additive-expression relop additive-expression | additive-expression
21.	logical-expression-> simple-expression logical simple-expression {logical logical-expression}| ! simple-expression {logical logical-expression}

22	logical-> &&| ||
23.	relop -> <=  |  >=  |  <  |  >  |  ==  |  !=
24.	additive-expression -> term { addop term } 
25.	addop -> + | -
26.	term -> factor { mulop factor } 
27.	mulop -> * | /
28.	factor -> ( simple-expression )|(logical-expression) | value
29.	value->var | call | NUM
30.	call -> ID ( args )
31.	args -> { arg-list }
32.	arg-list -> expression { , expression }










⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?