align with new @hide syntax
This commit is contained in:
+2
-1
@@ -9,7 +9,8 @@
|
||||
import "@std/debug"
|
||||
import "@source/lexer"
|
||||
|
||||
hide(file) TokenId :: alias lexer.TokenId
|
||||
@hide:file
|
||||
TokenId :: alias lexer.TokenId
|
||||
|
||||
NodeId :: distinct u32
|
||||
ExtraId :: distinct u32
|
||||
|
||||
@@ -6,11 +6,20 @@ import "@source/lexer"
|
||||
import "@source/parser"
|
||||
import "@source/ast"
|
||||
|
||||
hide(file) TokenId :: alias lexer.TokenId
|
||||
hide(file) Token :: alias lexer.Token
|
||||
hide(file) Node :: alias ast.Node
|
||||
hide(file) NodeId :: alias ast.NodeId
|
||||
hide(file) ParseState :: alias parser.State
|
||||
@hide:file
|
||||
TokenId :: alias lexer.TokenId
|
||||
|
||||
@hide:file
|
||||
Token :: alias lexer.Token
|
||||
|
||||
@hide:file
|
||||
Node :: alias ast.Node
|
||||
|
||||
@hide:file
|
||||
NodeId :: alias ast.NodeId
|
||||
|
||||
@hide:file
|
||||
ParseState :: alias parser.State
|
||||
|
||||
Renderer :: struct { tokens std.ArrayList(Token) }
|
||||
|
||||
@@ -38,7 +47,8 @@ render proc(
|
||||
}
|
||||
}
|
||||
|
||||
hide render_decl proc(
|
||||
@hide:file
|
||||
render_decl proc(
|
||||
renderer @mut Renderer,
|
||||
node_id NodeId,
|
||||
parse_state @ParseState,
|
||||
@@ -68,7 +78,8 @@ hide render_decl proc(
|
||||
) try arraylist.append(&renderer.tokens, tokens[eof_idx])
|
||||
}
|
||||
|
||||
hide render_expr proc(renderer @mut Renderer,
|
||||
@hide:file
|
||||
render_expr proc(renderer @mut Renderer,
|
||||
node_id NodeId,
|
||||
parse_state @ParseState,
|
||||
tokens []Token,
|
||||
@@ -87,7 +98,8 @@ hide render_expr proc(renderer @mut Renderer,
|
||||
}
|
||||
}
|
||||
|
||||
hide render_type proc(
|
||||
@hide:file
|
||||
render_type proc(
|
||||
renderer @mut Renderer,
|
||||
node_id NodeId,
|
||||
parse_state @ParseState,
|
||||
@@ -104,7 +116,8 @@ hide render_type proc(
|
||||
}
|
||||
}
|
||||
|
||||
hide render_lit proc(
|
||||
@hide:file
|
||||
render_lit proc(
|
||||
renderer @mut Renderer,
|
||||
node_id NodeId,
|
||||
parse_state @ParseState,
|
||||
|
||||
+10
-5
@@ -278,30 +278,35 @@ scan_string proc(start usize, program []u8) ScanStrResult ! ScanError {
|
||||
}
|
||||
}
|
||||
|
||||
hide is_whitespace proc(char u8) bool {
|
||||
@hide
|
||||
is_whitespace proc(char u8) bool {
|
||||
return char == ' ' or char == '\t' or char == '\n' or char == '\r'
|
||||
}
|
||||
|
||||
hide is_alpha proc(char u8) bool {
|
||||
@hide
|
||||
is_alpha proc(char u8) bool {
|
||||
return match char {
|
||||
'a'..='z', 'A'..='Z': true
|
||||
else: false
|
||||
}
|
||||
}
|
||||
|
||||
hide is_digit proc(char u8) bool {
|
||||
@hide
|
||||
is_digit proc(char u8) bool {
|
||||
return match char {
|
||||
'0'..='9': true
|
||||
else: false
|
||||
}
|
||||
}
|
||||
|
||||
hide add_token proc(tokens @mut std.ArrayList(Token), token Token) void ! mem.AllocError {
|
||||
@hide
|
||||
add_token proc(tokens @mut std.ArrayList(Token), token Token) void ! mem.AllocError {
|
||||
_ = token_id(tokens.items.len)
|
||||
try arraylist.append(tokens, token)
|
||||
}
|
||||
|
||||
hide token_id proc(idx uint) TokenId {
|
||||
@hide
|
||||
token_id proc(idx uint) TokenId {
|
||||
debug.assert(u64(idx) < u64(maxval!(TokenId)))
|
||||
return TokenId(idx)
|
||||
}
|
||||
|
||||
+2
-4
@@ -6,6 +6,7 @@ test import "@std/enums/enummap"
|
||||
test import "@std/arraylist"
|
||||
test import "@std/hashmap"
|
||||
test import "@std/strmap"
|
||||
test import "@std/meta"
|
||||
|
||||
import "@source/strpool"
|
||||
import "@source/lexer"
|
||||
@@ -17,7 +18,6 @@ test import "@source/strpool"
|
||||
test import "@source/lexer"
|
||||
test import "@source/parser"
|
||||
|
||||
|
||||
program ::
|
||||
`# literals
|
||||
`x int :: 123.9
|
||||
@@ -81,8 +81,6 @@ main proc() void! {
|
||||
try ast_renderer.render(&renderer, root, &parse_state, scan_state.tokens.items)
|
||||
|
||||
debug.print("AST Render::[[\n", {})
|
||||
for renderer.tokens.items |tok| {
|
||||
debug.print("{}\n", {tok.kind})
|
||||
}
|
||||
for (renderer.tokens.items) |tok| debug.print("{}\n", {tok.kind})
|
||||
debug.print("]]\n", {})
|
||||
}
|
||||
|
||||
+31
-15
@@ -31,16 +31,32 @@ error_msg_map std.EnumMap(ErrorCode, ErrorDetails) :: enummap.init({
|
||||
},
|
||||
})
|
||||
|
||||
hide(file) Token :: alias lexer.Token
|
||||
hide(file) TokenId :: alias lexer.TokenId
|
||||
hide(file) TokenKind :: alias lexer.TokenKind
|
||||
hide(file) Node :: alias ast.Node
|
||||
hide(file) NodeId :: alias ast.NodeId
|
||||
hide(file) ExtraId :: alias ast.ExtraId
|
||||
hide(file) NodeData :: alias ast.NodeData
|
||||
@hide:file
|
||||
Token :: alias lexer.Token
|
||||
|
||||
hide(file) NO_ID_NODE :: alias ast.NO_ID_NODE
|
||||
hide(file) NO_ID_EXTRA :: alias ast.NO_ID_EXTRA
|
||||
@hide:file
|
||||
TokenId :: alias lexer.TokenId
|
||||
|
||||
@hide:file
|
||||
TokenKind :: alias lexer.TokenKind
|
||||
|
||||
@hide:file
|
||||
Node :: alias ast.Node
|
||||
|
||||
@hide:file
|
||||
NodeId :: alias ast.NodeId
|
||||
|
||||
@hide:file
|
||||
ExtraId :: alias ast.ExtraId
|
||||
|
||||
@hide:file
|
||||
NodeData :: alias ast.NodeData
|
||||
|
||||
@hide:file
|
||||
NO_ID_NODE :: alias ast.NO_ID_NODE
|
||||
|
||||
@hide:file
|
||||
NO_ID_EXTRA :: alias ast.NO_ID_EXTRA
|
||||
|
||||
State :: struct {
|
||||
nodes std.ArrayList(Node)
|
||||
@@ -135,34 +151,34 @@ parse_primary proc(state @mut State) NodeId ! mem.AllocError {
|
||||
}
|
||||
}
|
||||
|
||||
hide expect proc(state @mut State, token_kind TokenKind) void ! ErrorCode {
|
||||
expect proc(state @mut State, token_kind TokenKind) void ! ErrorCode {
|
||||
if (state.tokens[state.next_token].kind != token_kind) return .unexpected_token
|
||||
}
|
||||
|
||||
hide expect_either proc(state @mut State, token_kinds []TokenKind) void ! ErrorCode {
|
||||
expect_either proc(state @mut State, token_kinds []TokenKind) void ! ErrorCode {
|
||||
for (token_kinds) |kind| if (state.tokens[state.next_token].kind == kind) return
|
||||
return .unexpected_token
|
||||
}
|
||||
|
||||
hide consume proc(state @mut State, token_kind TokenKind) TokenId ! ErrorCode {
|
||||
consume proc(state @mut State, token_kind TokenKind) TokenId ! ErrorCode {
|
||||
try expect(state, token_kind)
|
||||
state.next_token += 1
|
||||
return state.next_token - 1
|
||||
}
|
||||
|
||||
hide consume_either proc(state @mut State, token_kinds []TokenKind) TokenId ! ErrorCode {
|
||||
consume_either proc(state @mut State, token_kinds []TokenKind) TokenId ! ErrorCode {
|
||||
try expect_either(state, token_kinds)
|
||||
state.next_token += 1
|
||||
return state.next_token - 1
|
||||
}
|
||||
|
||||
hide add_node proc(nodes @mut std.ArrayList(Node), node Node) NodeId ! mem.AllocError {
|
||||
add_node proc(nodes @mut std.ArrayList(Node), node Node) NodeId ! mem.AllocError {
|
||||
id :: ast.node_id(nodes.items.len)
|
||||
try arraylist.append(nodes, node)
|
||||
return id
|
||||
}
|
||||
|
||||
hide add_extra proc(extra @mut std.ArrayList(u32), data u32) ExtraId ! mem.AllocError {
|
||||
add_extra proc(extra @mut std.ArrayList(u32), data u32) ExtraId ! mem.AllocError {
|
||||
id :: ast.extra_id(extra.items.len)
|
||||
try arraylist.append(extra, data)
|
||||
return id
|
||||
|
||||
Reference in New Issue
Block a user