@@ -134,6 +134,7 @@ static const struct ZigKeyword zig_keywords[] = {
|
||||
{"switch", TokenIdKeywordSwitch},
|
||||
{"this", TokenIdKeywordThis},
|
||||
{"true", TokenIdKeywordTrue},
|
||||
{"try", TokenIdKeywordTry},
|
||||
{"type", TokenIdKeywordType},
|
||||
{"undefined", TokenIdKeywordUndefined},
|
||||
{"union", TokenIdKeywordUnion},
|
||||
@@ -1444,108 +1445,109 @@ void tokenize(Buf *buf, Tokenization *out) {
|
||||
|
||||
const char * token_name(TokenId id) {
|
||||
switch (id) {
|
||||
case TokenIdEof: return "EOF";
|
||||
case TokenIdSymbol: return "Symbol";
|
||||
case TokenIdKeywordFn: return "fn";
|
||||
case TokenIdKeywordConst: return "const";
|
||||
case TokenIdKeywordVar: return "var";
|
||||
case TokenIdKeywordReturn: return "return";
|
||||
case TokenIdKeywordExtern: return "extern";
|
||||
case TokenIdKeywordPub: return "pub";
|
||||
case TokenIdKeywordExport: return "export";
|
||||
case TokenIdKeywordUse: return "use";
|
||||
case TokenIdKeywordTrue: return "true";
|
||||
case TokenIdKeywordFalse: return "false";
|
||||
case TokenIdKeywordIf: return "if";
|
||||
case TokenIdKeywordElse: return "else";
|
||||
case TokenIdKeywordGoto: return "goto";
|
||||
case TokenIdKeywordVolatile: return "volatile";
|
||||
case TokenIdKeywordAsm: return "asm";
|
||||
case TokenIdKeywordStruct: return "struct";
|
||||
case TokenIdKeywordEnum: return "enum";
|
||||
case TokenIdKeywordUnion: return "union";
|
||||
case TokenIdKeywordWhile: return "while";
|
||||
case TokenIdKeywordFor: return "for";
|
||||
case TokenIdKeywordContinue: return "continue";
|
||||
case TokenIdKeywordBreak: return "break";
|
||||
case TokenIdKeywordNull: return "null";
|
||||
case TokenIdKeywordNoAlias: return "noalias";
|
||||
case TokenIdKeywordSwitch: return "switch";
|
||||
case TokenIdKeywordUndefined: return "undefined";
|
||||
case TokenIdKeywordThis: return "this";
|
||||
case TokenIdKeywordError: return "error";
|
||||
case TokenIdKeywordType: return "type";
|
||||
case TokenIdKeywordInline: return "inline";
|
||||
case TokenIdKeywordCompTime: return "comptime";
|
||||
case TokenIdKeywordDefer: return "defer";
|
||||
case TokenIdKeywordColdCC: return "coldcc";
|
||||
case TokenIdKeywordNakedCC: return "nakedcc";
|
||||
case TokenIdLParen: return "(";
|
||||
case TokenIdRParen: return ")";
|
||||
case TokenIdComma: return ",";
|
||||
case TokenIdStar: return "*";
|
||||
case TokenIdStarStar: return "**";
|
||||
case TokenIdLBrace: return "{";
|
||||
case TokenIdRBrace: return "}";
|
||||
case TokenIdLBracket: return "[";
|
||||
case TokenIdRBracket: return "]";
|
||||
case TokenIdStringLiteral: return "StringLiteral";
|
||||
case TokenIdCharLiteral: return "CharLiteral";
|
||||
case TokenIdSemicolon: return ";";
|
||||
case TokenIdNumberLiteral: return "NumberLiteral";
|
||||
case TokenIdPlus: return "+";
|
||||
case TokenIdPlusPlus: return "++";
|
||||
case TokenIdColon: return ":";
|
||||
case TokenIdArrow: return "->";
|
||||
case TokenIdFatArrow: return "=>";
|
||||
case TokenIdDash: return "-";
|
||||
case TokenIdNumberSign: return "#";
|
||||
case TokenIdBinOr: return "|";
|
||||
case TokenIdAmpersand: return "&";
|
||||
case TokenIdBinXor: return "^";
|
||||
case TokenIdBoolOr: return "||";
|
||||
case TokenIdBoolAnd: return "&&";
|
||||
case TokenIdEq: return "=";
|
||||
case TokenIdTimesEq: return "*=";
|
||||
case TokenIdDivEq: return "/=";
|
||||
case TokenIdModEq: return "%=";
|
||||
case TokenIdPlusEq: return "+=";
|
||||
case TokenIdMinusEq: return "-=";
|
||||
case TokenIdBitShiftLeftEq: return "<<=";
|
||||
case TokenIdBitShiftRightEq: return ">>=";
|
||||
case TokenIdBitAndEq: return "&=";
|
||||
case TokenIdBitXorEq: return "^=";
|
||||
case TokenIdBitOrEq: return "|=";
|
||||
case TokenIdBoolAndEq: return "&&=";
|
||||
case TokenIdBoolOrEq: return "||=";
|
||||
case TokenIdBang: return "!";
|
||||
case TokenIdTilde: return "~";
|
||||
case TokenIdCmpEq: return "==";
|
||||
case TokenIdCmpNotEq: return "!=";
|
||||
case TokenIdCmpLessThan: return "<";
|
||||
case TokenIdCmpGreaterThan: return ">";
|
||||
case TokenIdCmpLessOrEq: return "<=";
|
||||
case TokenIdCmpGreaterOrEq: return ">=";
|
||||
case TokenIdBitShiftLeft: return "<<";
|
||||
case TokenIdBitShiftRight: return ">>";
|
||||
case TokenIdSlash: return "/";
|
||||
case TokenIdPercent: return "%";
|
||||
case TokenIdPercentPercent: return "%%";
|
||||
case TokenIdDot: return ".";
|
||||
case TokenIdEllipsis: return "...";
|
||||
case TokenIdMaybe: return "?";
|
||||
case TokenIdDoubleQuestion: return "??";
|
||||
case TokenIdMaybeAssign: return "?=";
|
||||
case TokenIdArrow: return "->";
|
||||
case TokenIdAtSign: return "@";
|
||||
case TokenIdPercentDot: return "%.";
|
||||
case TokenIdTimesPercent: return "*%";
|
||||
case TokenIdTimesPercentEq: return "*%=";
|
||||
case TokenIdPlusPercent: return "+%";
|
||||
case TokenIdPlusPercentEq: return "+%=";
|
||||
case TokenIdMinusPercent: return "-%";
|
||||
case TokenIdMinusPercentEq: return "-%=";
|
||||
case TokenIdBang: return "!";
|
||||
case TokenIdBinOr: return "|";
|
||||
case TokenIdBinXor: return "^";
|
||||
case TokenIdBitAndEq: return "&=";
|
||||
case TokenIdBitOrEq: return "|=";
|
||||
case TokenIdBitShiftLeft: return "<<";
|
||||
case TokenIdBitShiftLeftEq: return "<<=";
|
||||
case TokenIdBitShiftLeftPercent: return "<<%";
|
||||
case TokenIdBitShiftLeftPercentEq: return "<<%=";
|
||||
case TokenIdBitShiftRight: return ">>";
|
||||
case TokenIdBitShiftRightEq: return ">>=";
|
||||
case TokenIdBitXorEq: return "^=";
|
||||
case TokenIdBoolAnd: return "&&";
|
||||
case TokenIdBoolAndEq: return "&&=";
|
||||
case TokenIdBoolOr: return "||";
|
||||
case TokenIdBoolOrEq: return "||=";
|
||||
case TokenIdCharLiteral: return "CharLiteral";
|
||||
case TokenIdCmpEq: return "==";
|
||||
case TokenIdCmpGreaterOrEq: return ">=";
|
||||
case TokenIdCmpGreaterThan: return ">";
|
||||
case TokenIdCmpLessOrEq: return "<=";
|
||||
case TokenIdCmpLessThan: return "<";
|
||||
case TokenIdCmpNotEq: return "!=";
|
||||
case TokenIdColon: return ":";
|
||||
case TokenIdComma: return ",";
|
||||
case TokenIdDash: return "-";
|
||||
case TokenIdDivEq: return "/=";
|
||||
case TokenIdDot: return ".";
|
||||
case TokenIdDoubleQuestion: return "??";
|
||||
case TokenIdEllipsis: return "...";
|
||||
case TokenIdEof: return "EOF";
|
||||
case TokenIdEq: return "=";
|
||||
case TokenIdFatArrow: return "=>";
|
||||
case TokenIdKeywordAsm: return "asm";
|
||||
case TokenIdKeywordBreak: return "break";
|
||||
case TokenIdKeywordColdCC: return "coldcc";
|
||||
case TokenIdKeywordCompTime: return "comptime";
|
||||
case TokenIdKeywordConst: return "const";
|
||||
case TokenIdKeywordContinue: return "continue";
|
||||
case TokenIdKeywordDefer: return "defer";
|
||||
case TokenIdKeywordElse: return "else";
|
||||
case TokenIdKeywordEnum: return "enum";
|
||||
case TokenIdKeywordError: return "error";
|
||||
case TokenIdKeywordExport: return "export";
|
||||
case TokenIdKeywordExtern: return "extern";
|
||||
case TokenIdKeywordFalse: return "false";
|
||||
case TokenIdKeywordFn: return "fn";
|
||||
case TokenIdKeywordFor: return "for";
|
||||
case TokenIdKeywordGoto: return "goto";
|
||||
case TokenIdKeywordIf: return "if";
|
||||
case TokenIdKeywordInline: return "inline";
|
||||
case TokenIdKeywordNakedCC: return "nakedcc";
|
||||
case TokenIdKeywordNoAlias: return "noalias";
|
||||
case TokenIdKeywordNull: return "null";
|
||||
case TokenIdKeywordPub: return "pub";
|
||||
case TokenIdKeywordReturn: return "return";
|
||||
case TokenIdKeywordStruct: return "struct";
|
||||
case TokenIdKeywordSwitch: return "switch";
|
||||
case TokenIdKeywordThis: return "this";
|
||||
case TokenIdKeywordTrue: return "true";
|
||||
case TokenIdKeywordTry: return "try";
|
||||
case TokenIdKeywordType: return "type";
|
||||
case TokenIdKeywordUndefined: return "undefined";
|
||||
case TokenIdKeywordUnion: return "union";
|
||||
case TokenIdKeywordUse: return "use";
|
||||
case TokenIdKeywordVar: return "var";
|
||||
case TokenIdKeywordVolatile: return "volatile";
|
||||
case TokenIdKeywordWhile: return "while";
|
||||
case TokenIdLBrace: return "{";
|
||||
case TokenIdLBracket: return "[";
|
||||
case TokenIdLParen: return "(";
|
||||
case TokenIdMaybe: return "?";
|
||||
case TokenIdMaybeAssign: return "?=";
|
||||
case TokenIdMinusEq: return "-=";
|
||||
case TokenIdMinusPercent: return "-%";
|
||||
case TokenIdMinusPercentEq: return "-%=";
|
||||
case TokenIdModEq: return "%=";
|
||||
case TokenIdNumberLiteral: return "NumberLiteral";
|
||||
case TokenIdNumberSign: return "#";
|
||||
case TokenIdPercent: return "%";
|
||||
case TokenIdPercentDot: return "%.";
|
||||
case TokenIdPercentPercent: return "%%";
|
||||
case TokenIdPlus: return "+";
|
||||
case TokenIdPlusEq: return "+=";
|
||||
case TokenIdPlusPercent: return "+%";
|
||||
case TokenIdPlusPercentEq: return "+%=";
|
||||
case TokenIdPlusPlus: return "++";
|
||||
case TokenIdRBrace: return "}";
|
||||
case TokenIdRBracket: return "]";
|
||||
case TokenIdRParen: return ")";
|
||||
case TokenIdSemicolon: return ";";
|
||||
case TokenIdSlash: return "/";
|
||||
case TokenIdStar: return "*";
|
||||
case TokenIdStarStar: return "**";
|
||||
case TokenIdStringLiteral: return "StringLiteral";
|
||||
case TokenIdSymbol: return "Symbol";
|
||||
case TokenIdTilde: return "~";
|
||||
case TokenIdTimesEq: return "*=";
|
||||
case TokenIdTimesPercent: return "*%";
|
||||
case TokenIdTimesPercentEq: return "*%=";
|
||||
}
|
||||
return "(invalid token)";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user