Add registers and fix section primitive parser
This commit is contained in:
		| @@ -62,9 +62,19 @@ parse_result_t parse_dot(tokenlist_entry_t *current) { | ||||
|     return parse_token(current, TOKEN_DOT, NODE_DOT, nullptr); | ||||
| } | ||||
|  | ||||
| const char *registers[] = {"rax", "rcx", "rdx", "rbx", "rsp",  "rbp", | ||||
|                            "rsi", "rdi", "r8",  "r9",  "r10",  "r11", | ||||
|                            "r12", "r13", "r14", "r15", nullptr}; | ||||
| const char *registers[] = { | ||||
|     // 64-bit registers | ||||
|     "rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi", "r8", "r9", "r10", | ||||
|     "r11", "r12", "r13", "r14", "r15", | ||||
|     // 32-bit registers | ||||
|     "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi", "r8d", "r9d", | ||||
|     "r10d", "r11d", "r12d", "r13d", "r14d", "r15d", | ||||
|     // 16-bit registers | ||||
|     "ax", "cx", "dx", "bx", "sp", "bp", "si", "di", "r8w", "r9w", "r10w", | ||||
|     "r11w", "r12w", "r13w", "r14w", "r15w", | ||||
|     // 8-bit low registers | ||||
|     "al", "cl", "dl", "bl", "spl", "bpl", "sil", "dil", "r8b", "r9b", "r10b", | ||||
|     "r11b", "r12b", "r13b", "r14b", "r15b", nullptr}; | ||||
| bool is_register_token(lexer_token_t *token) { | ||||
|     for (size_t i = 0; registers[i] != nullptr; ++i) | ||||
|         if (strcmp(token->value, registers[i]) == 0) | ||||
| @@ -81,4 +91,7 @@ bool is_section_token(lexer_token_t *token) { | ||||
|     return strcmp(token->value, "section") == 0; | ||||
| } | ||||
|  | ||||
| parse_result_t parse_section(tokenlist_entry_t *current) {} | ||||
| parse_result_t parse_section(tokenlist_entry_t *current) { | ||||
|     return parse_token(current, TOKEN_IDENTIFIER, NODE_SECTION, | ||||
|                        is_section_token); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user