Skip to content

Commit 0404547

Browse files
committed
Parse hex literals
1 parent 3d2937a commit 0404547

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

ml-proto/src/host/lexer.mll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ let escape = ['n''t''\\''\'''\"']
9797
let character = [^'"''\\''\n'] | '\\'escape | '\\'hexdigit hexdigit
9898

9999
let num = ('+' | '-')? digit+
100-
let int = num
100+
let hexnum = ('+' | '-')? "0x" digit+
101+
let int = num | hexnum
101102
let float = (num '.' digit+) | num ('.' digit+)? ('e' | 'E') num
102103
let text = '"' character* '"'
103104
let name = '$' (letter | digit | '_' | tick | symbol)+

ml-proto/test/hexnum.wasm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
(module
2+
(func $f (result i32)
3+
(return (i32.const 0x12345678))
4+
)
5+
6+
(export "f" $f)
7+
)
8+
9+
(assert_eq (invoke "f") (i32.const 305419896))

0 commit comments

Comments
 (0)