-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstage1.grm
26 lines (20 loc) · 823 Bytes
/
stage1.grm
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
"Name" = 'Sharp Grammar'
"Version" = '1.0'
"Author" = 'Michael Bebenita'
"Case Sensitive" = 'True'
"Start Symbol" = <Literal>
! Scanner Rules
{ALPHA_NUMERIC} = {DIGIT} + {LETTER}
{HEX_DIGIT} = {DIGIT} + [abcdef] + [ABCDEF]
{String Char} = {Printable} - ["]
! Literals may be either true or false, integers, real numbers, or characters.
boolean_literal = (true)|(false)
integer_literal = ({DIGIT}+) | (0x{HEX_DIGIT}+)
real_literal = {DIGIT}*'.'{DIGIT}+f
character_literal = ''{LETTER}''
string_literal = '"'{String Char}*'"'
<Literal> ::= boolean_literal
| integer_literal
| real_literal
| character_literal
| string_literal