package lang type tokenKind string const ( tokenEOF tokenKind = "EOF" tokenIdent tokenKind = "IDENT" tokenInt tokenKind = "INT" tokenFloat tokenKind = "FLOAT" tokenString tokenKind = "STRING" tokenTrue tokenKind = "TRUE" tokenFalse tokenKind = "FALSE" tokenNull tokenKind = "NULL" tokenImport tokenKind = "IMPORT" tokenPackage tokenKind = "PACKAGE" tokenClass tokenKind = "CLASS" tokenData tokenKind = "DATA" tokenInterface tokenKind = "INTERFACE" tokenEnum tokenKind = "ENUM" tokenMatch tokenKind = "MATCH" tokenFun tokenKind = "FUN" tokenSuspend tokenKind = "SUSPEND" tokenOverride tokenKind = "OVERRIDE" tokenPrivate tokenKind = "PRIVATE" tokenVal tokenKind = "VAL" tokenVar tokenKind = "VAR" tokenIf tokenKind = "IF" tokenElse tokenKind = "ELSE" tokenWhile tokenKind = "WHILE" tokenFor tokenKind = "FOR" tokenIn tokenKind = "IN" tokenReturn tokenKind = "RETURN" tokenDefer tokenKind = "DEFER" tokenTry tokenKind = "TRY" tokenCatch tokenKind = "CATCH" tokenThrow tokenKind = "THROW" tokenLParen tokenKind = "(" tokenRParen tokenKind = ")" tokenLBrace tokenKind = "{" tokenRBrace tokenKind = "}" tokenLBracket tokenKind = "[" tokenRBracket tokenKind = "]" tokenComma tokenKind = "," tokenDot tokenKind = "." tokenColon tokenKind = ":" tokenSemicolon tokenKind = ";" tokenPlus tokenKind = "+" tokenMinus tokenKind = "-" tokenStar tokenKind = "*" tokenSlash tokenKind = "/" tokenPercent tokenKind = "%" tokenBang tokenKind = "!" tokenAssign tokenKind = "=" tokenPlusAssign tokenKind = "+=" tokenEq tokenKind = "==" tokenNeq tokenKind = "!=" tokenLt tokenKind = "<" tokenLte tokenKind = "<=" tokenGt tokenKind = ">" tokenGte tokenKind = ">=" tokenAnd tokenKind = "&&" tokenAmp tokenKind = "&" tokenAt tokenKind = "@" tokenQuestion tokenKind = "?" tokenSafeDot tokenKind = "?." tokenDoubleBang tokenKind = "!!" tokenOr tokenKind = "||" tokenArrow tokenKind = "->" ) var keywords = map[string]tokenKind{ "fun": tokenFun, "suspend": tokenSuspend, "import": tokenImport, "package": tokenPackage, "class": tokenClass, "data": tokenData, "interface": tokenInterface, "enum": tokenEnum, "match": tokenMatch, "val": tokenVal, "var": tokenVar, "override": tokenOverride, "private": tokenPrivate, "if": tokenIf, "else": tokenElse, "while": tokenWhile, "for": tokenFor, "in": tokenIn, "return": tokenReturn, "defer": tokenDefer, "try": tokenTry, "catch": tokenCatch, "throw": tokenThrow, "true": tokenTrue, "false": tokenFalse, "null": tokenNull, } type token struct { kind tokenKind lexeme string pos int }