File: int

package info (click to toggle)
lola 1.8-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 464 kB
  • sloc: python: 1,355; ansic: 1,169; fortran: 373; makefile: 40; yacc: 7
file content (36 lines) | stat: -rw-r--r-- 593 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
;
; this grammar recognises integer
; expressions involving +,-,*,/ and unary -
;
(
(lines		(expr "PRINT" \n lines)
		(\n lines)
		()
		)
(expr		(term exprp)
		)
(exprp		(+ term "ADD" exprp)
		(- term "SUBTRACT" exprp)
		()
		)
(term		(fact termp)
		)
(termp		(* fact "MULTIPLY" termp)
		(/ fact "DIVIDE" termp)
		()
		)
(fact		(|(| expr |)|)
		(int "PUSH")
		(- fact "NEGATE")
		(+ fact)
		)
(int		("CLEAR" digits)
		)
(digits		("ADD-DIGIT" digit more-digits)
		)
(more-digits	("ADD-DIGIT" digit more-digits)
		()
		)
(digit		(|0|) (|1|) (|2|) (|3|) (|4|) (|5|) (|6|) (|7|) (|8|) (|9|)
		)
)