Skip to content

Commit aeb5bf4

Browse files
committed
Support for additional integer literal implemented
1 parent 0499ec2 commit aeb5bf4

File tree

5 files changed

+9
-0
lines changed

5 files changed

+9
-0
lines changed

compiler/src/Lexer.x

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ tokens:-
115115
<state_dclabel> "#root-integrity" { mkL TokenDCRootInteg }
116116
<state_dclabel> "#null-confidentiality" { mkL TokenDCNullConf }
117117
<state_dclabel> "#null-integrity" { mkL TokenDCNullInteg }
118+
-- Integer literal parsing inspired by https://github.com/ocaml/ocaml/blob/trunk/parsing/lexer.mll
118119
<0> @declit { mkLs (\s -> TokenNum (read (filter (/='_') s))) }
119120
<0> @binlit { mkLs (\s -> TokenNum (fst (head (readBin (filter (/='_') (drop 2 s)))))) }
120121
<0> @octlit { mkLs (\s -> TokenNum (fst (head (readOct (filter (/='_') (drop 2 s)))))) }

tests/cmp/int-lit3.golden

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Parse Error:
2+
Invalid literal 0b12
3+
at 1:5 before end of line

tests/cmp/int-lit3.trp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0b12

tests/cmp/int-lit4.golden

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Parse Error:
2+
Invalid literal 0o8
3+
at 1:4 before end of line

tests/cmp/int-lit4.trp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0o8

0 commit comments

Comments
 (0)