mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:57:35 +00:00
LibCpp: Allow whitespace between # and preprocessor directive
For example, '# include <stdio.h>' is now supported by the Lexer.
This commit is contained in:
parent
feab5e8a3e
commit
165a0082c4
1 changed files with 5 additions and 2 deletions
|
@ -528,13 +528,16 @@ Vector<Token> Lexer::lex()
|
|||
if (ch == '#') {
|
||||
begin_token();
|
||||
consume();
|
||||
while (AK::is_ascii_space(peek()))
|
||||
consume();
|
||||
|
||||
size_t directive_start = m_index;
|
||||
if (is_valid_first_character_of_identifier(peek()))
|
||||
while (peek() && is_valid_nonfirst_character_of_identifier(peek()))
|
||||
consume();
|
||||
|
||||
auto directive = StringView(m_input.characters_without_null_termination() + token_start_index, m_index - token_start_index);
|
||||
if (directive == "#include") {
|
||||
auto directive = StringView(m_input.characters_without_null_termination() + directive_start, m_index - directive_start);
|
||||
if (directive == "include"sv) {
|
||||
commit_token(Token::Type::IncludeStatement);
|
||||
|
||||
if (is_ascii_space(peek())) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue