File: float

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 (51 lines) | stat: -rw-r--r-- 840 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
;
; this grammar recognises floating point
; expressions involving +,-,*,/ and unary -
;
(
(expr		(term exprp)
		)
(exprp		(+ term "ADD" exprp)
		(- term "SUBTRACT" exprp)
		()
		)
(term		(fact termp)
		)
(termp		(* fact "MULTIPLY" termp)
		(/ fact "DIVIDE" termp)
		()
		)
(fact		(|(| expr |)|)
		(float "PUSH")
		(- fact "NEGATE")
		)
(float		(opt-sign . "CLEAR" "POINT" digits opt-exp)
		(opt-sign "CLEAR" digits opt-. opt-exp)
		)
(opt-sign	("POSITIVE" +)
 		("NEGATIVE" -)
		()
		)
(opt-digits	(digits)
		()
		)
(digits		("ADD-DIGIT" digit more-digits)
		("ADD-DIGIT" digit)
		)
(more-digits	("ADD-DIGIT" digit more-digits)
		()
		)
(digit		(|0|) (|1|) (|2|) (|3|) (|4|) (|5|) (|6|) (|7|) (|8|) (|9|)
		)
(opt-exp	("EXP" exp)
		()
		)
(exp		(eE opt-sign "CLEAR" digits)
		)
(eE		(e)
		(E)
		)
(opt-.		(. "POINT" opt-digits)
		()
		)
)