diff options
3 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/parser/TokenType.java b/src/main/java/org/zwobble/hobgoblin/compiler/parser/TokenType.java index ef1c9dc..e25a9f0 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/parser/TokenType.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/parser/TokenType.java @@ -7,6 +7,7 @@ enum TokenType { WHITESPACE, KEYWORD_FIELD, + KEYWORD_NATIVE, KEYWORD_STRUCT, KEYWORD_SUM, KEYWORD_VARIANT, diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/parser/Tokenizer.java b/src/main/java/org/zwobble/hobgoblin/compiler/parser/Tokenizer.java index 1311df3..7119cfd 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/parser/Tokenizer.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/parser/Tokenizer.java @@ -109,6 +109,8 @@ class Tokenizer { TokenType tokenType; if (CharSequence.compare(sourceRange.charSequence(), "field") == 0) { tokenType = TokenType.KEYWORD_FIELD; + } else if (CharSequence.compare(sourceRange.charSequence(), "native") == 0) { + tokenType = TokenType.KEYWORD_NATIVE; } else if (CharSequence.compare(sourceRange.charSequence(), "struct") == 0) { tokenType = TokenType.KEYWORD_STRUCT; } else if (CharSequence.compare(sourceRange.charSequence(), "sum") == 0) { diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/parser/TokenizerTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/parser/TokenizerTests.java index 551e8d3..e8dfd36 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/parser/TokenizerTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/parser/TokenizerTests.java @@ -30,6 +30,17 @@ public class TokenizerTests { } @Test + public void keywordNativeIsTokenized() { + var sourceText = SourceText.fromString("<string>", "native"); + + var tokens = Tokenizer.tokenize(sourceText); + + assertThat(tokens.tokens(), isSequence( + equalTo(new Token(TokenType.KEYWORD_NATIVE, sourceRange(sourceText, 0, 6))) + )); + } + + @Test public void keywordStructIsTokenized() { var sourceText = SourceText.fromString("<string>", "struct"); |
