Merge pull request #897 from aeon0/nip-error-fix-2

Nip error fix 2
This commit is contained in:
Riddle
2022-06-17 22:04:29 -04:00
committed by GitHub
+16 -22
View File
@@ -307,28 +307,22 @@ class Lexer:
if self.current_section == NipSections.PROP:
# TODO: The second checks (i.e NTIPAliasClass and self.tokens[-2].type == TokenType.CLASS:) seem a little misplaced, possibly put them inside the validation function that is inside transpiler.py and throw a warning accordingly.
if lookup_key in NTIPAliasClass and self.tokens[-2].type == TokenType.KeywordNTIPAliasClass:
return Token(TokenType.ValueNTIPAliasClass, lookup_key)
elif lookup_key in NTIPAliasQuality and self.tokens[-2].type == TokenType.KeywordNTIPAliasQuality:
return Token(TokenType.ValueNTIPAliasQuality, lookup_key)
elif lookup_key in NTIPAliasClassID and self.tokens[-2].type == TokenType.KeywordNTIPAliasName:
return Token(TokenType.ValueNTIPAliasClassID, lookup_key)
elif lookup_key in NTIPAliasFlag and self.tokens[-2].type == TokenType.KeywordNTIPAliasFlag:
return Token(TokenType.ValueNTIPAliasFlag, lookup_key)
elif lookup_key in NTIPAliasType and self.tokens[-2].type == TokenType.KeywordNTIPAliasType:
return Token(TokenType.ValueNTIPAliasType, lookup_key)
elif self.tokens[-2].type == TokenType.KeywordNTIPAliasIDName:
return Token(TokenType.ValueNTIPAliasIDName, lookup_key)
# if self.tokens[-2].type != TokenType.KeywordNTIPAliasIDName: # * Make sure the last token isn't [idname]
# # Add all the NTIPAlias* to a dict
# NTIPAliasAll = NTIPAliasClass | NTIPAliasQuality | NTIPAliasClassID | NTIPAliasFlag | NTIPAliasType
# for key in NTIPAliasAll:
# if levenshtein(lookup_key, key) < 3:
# raise NipSyntaxError( "NIP_0x4", f"Unknown NTIP lookup: {lookup_key} did you mean {key}?", self._get_text())
# else:
# return Token(TokenType.ValueNTIPAliasIDName, lookup_key)
return Token(TokenType.UNKNOWN, lookup_key)
if len(self.tokens) >= 2:
if lookup_key in NTIPAliasClass and self.tokens[-2].type == TokenType.KeywordNTIPAliasClass:
return Token(TokenType.ValueNTIPAliasClass, lookup_key)
elif lookup_key in NTIPAliasQuality and self.tokens[-2].type == TokenType.KeywordNTIPAliasQuality:
return Token(TokenType.ValueNTIPAliasQuality, lookup_key)
elif lookup_key in NTIPAliasClassID and self.tokens[-2].type == TokenType.KeywordNTIPAliasName:
return Token(TokenType.ValueNTIPAliasClassID, lookup_key)
elif lookup_key in NTIPAliasFlag and self.tokens[-2].type == TokenType.KeywordNTIPAliasFlag:
return Token(TokenType.ValueNTIPAliasFlag, lookup_key)
elif lookup_key in NTIPAliasType and self.tokens[-2].type == TokenType.KeywordNTIPAliasType:
return Token(TokenType.ValueNTIPAliasType, lookup_key)
elif self.tokens[-2].type == TokenType.KeywordNTIPAliasIDName:
return Token(TokenType.ValueNTIPAliasIDName, lookup_key)
else:
raise NipSyntaxError("NIP_0x20", f"Bad token sequence: {self._get_text()}", self._get_text())
return Token(TokenType.UNKNOWN, lookup_key)
elif self.current_section == NipSections.STAT:
if lookup_key in NTIPAliasStat:
return Token(TokenType.ValueNTIPAliasStat, lookup_key)