Added inferred types and missing length function.
This commit is contained in:
12
Parsing.jai
12
Parsing.jai
@@ -264,7 +264,7 @@ error_node :: (parse_state : *Parse_State, message : string) -> *AST_Node {
|
||||
advance_to_sync_point :: (parse_state : *Parse_State) {
|
||||
while true {
|
||||
if parse_state.current.kind == .TOKEN_SEMICOLON || parse_state.current.kind == .TOKEN_RIGHTBRACE ||
|
||||
parse_state.current.kind == .TOKEN_LEFTBRACE{
|
||||
parse_state.current.kind == .TOKEN_LEFTBRACE {
|
||||
break;
|
||||
}
|
||||
advance(parse_state);
|
||||
@@ -644,8 +644,12 @@ field_declaration :: (parse_state : *Parse_State, identifier_token : *Token) ->
|
||||
advance(parse_state);
|
||||
node.array_field = true;
|
||||
} else {
|
||||
missing_type_specifier(parse_state, identifier_token, "Expected type specifier after field name.");
|
||||
return node;
|
||||
if !check(parse_state, .TOKEN_ASSIGN) {
|
||||
internal_error_message(*parse_state.result.messages, "Unimplemented error message.", parse_state.path);
|
||||
return node;
|
||||
}
|
||||
// missing_type_specifier(parse_state, identifier_token, "Expected type specifier after field name.");
|
||||
|
||||
}
|
||||
|
||||
if check(parse_state, .TOKEN_AT) {
|
||||
@@ -1088,6 +1092,8 @@ parse :: (result : *Compile_Result) {
|
||||
file.ast_root = parse_state.result.root;
|
||||
file.ast_nodes = parse_state.result.nodes;
|
||||
copy_messages(parse_state.result.messages, *result.messages);
|
||||
|
||||
result.had_error |= parse_state.result.had_error;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user