class Rouge::Lexers::Janet
def self.bundled
def self.bundled @bundled ||= Set.new %w( % %= * *= + ++ += - -- -= -> ->> -?> -?>> / /= < <= = > >= abstract? accumulate accumulate2 all all-bindings all-dynamics and apply array array/concat array/ensure array/fill array/insert array/new array/new-filled array/peek array/pop array/push array/remove array/slice array? as-> as?-> asm assert bad-compile bad-parse band blshift bnot boolean? bor brshift brushift buffer buffer/bit buffer/bit-clear buffer/bit-set buffer/bit-toggle buffer/blit buffer/clear buffer/fill buffer/format buffer/new buffer/new-filled buffer/popn buffer/push-byte buffer/push-string buffer/push-word buffer/slice buffer? bxor bytes? case cfunction? chr cli-main comment comp compare compare= compare< compare<= compare> compare>= compile complement comptime cond coro count debug debug/arg-stack debug/break debug/fbreak debug/lineage debug/stack debug/stacktrace debug/step debug/unbreak debug/unfbreak debugger-env dec deep-not= deep= default default-peg-grammar def- defer defmacro defmacro- defn defn- defglobal describe dictionary? disasm distinct doc doc* doc-format dofile drop drop-until drop-while dyn each eachk eachp eachy edefer eflush empty? env-lookup eprin eprinf eprint eprintf error errorf eval eval-string even? every? extreme false? fiber/can-resume? fiber/current fiber/getenv fiber/maxstack fiber/new fiber/root fiber/setenv fiber/setmaxstack fiber/status fiber? file/close file/flush file/open file/popen file/read file/seek file/temp file/write filter find find-index first flatten flatten-into flush for forv freeze frequencies function? gccollect gcinterval gcsetinterval generate gensym get get-in getline hash idempotent? identity import import* if-let if-not if-with in inc indexed? int/s64 int/u64 int? interleave interpose invert janet/build janet/config-bits janet/version juxt juxt* keep keys keyword keyword? kvs label last length let load-image load-image-dict loop macex macex1 make-env make-image make-image-dict map mapcat marshal math/-inf math/abs math/acos math/acosh math/asin math/asinh math/atan math/atan2 math/atanh math/cbrt math/ceil math/cos math/cosh math/e math/erf math/erfc math/exp math/exp2 math/expm1 math/floor math/gamma math/hypot math/inf math/log math/log10 math/log1p math/log2 math/next math/pi math/pow math/random math/rng math/rng-buffer math/rng-int math/rng-uniform math/round math/seedrandom math/sin math/sinh math/sqrt math/tan math/tanh math/trunc match max mean merge merge-into min mod module/add-paths module/cache module/expand-path module/find module/loaders module/loading module/paths nan? nat? native neg? net/chunk net/close net/connect net/read net/server net/write next nil? not not= number? odd? one? or os/arch os/cd os/chmod os/clock os/cryptorand os/cwd os/date os/dir os/environ os/execute os/exit os/getenv os/link os/lstat os/mkdir os/mktime os/perm-int os/perm-string os/readlink os/realpath os/rename os/rm os/rmdir os/setenv os/shell os/sleep os/stat os/symlink os/time os/touch os/umask os/which pairs parse parser/byte parser/clone parser/consume parser/eof parser/error parser/flush parser/has-more parser/insert parser/new parser/produce parser/state parser/status parser/where partial partition peg/compile peg/match pos? postwalk pp prewalk prin prinf print printf product prompt propagate protect put put-in quit range reduce reduce2 repeat repl require resume return reverse reversed root-env run-context scan-number seq setdyn shortfn signal slice slurp some sort sort-by sorted sorted-by spit stderr stdin stdout string string/ascii-lower string/ascii-upper string/bytes string/check-set string/find string/find-all string/format string/from-bytes string/has-prefix? string/has-suffix? string/join string/repeat string/replace string/replace-all string/reverse string/slice string/split string/trim string/triml string/trimr string? struct struct? sum symbol symbol? table table/clone table/getproto table/new table/rawget table/setproto table/to-struct table? take take-until take-while tarray/buffer tarray/copy-bytes tarray/length tarray/new tarray/properties tarray/slice tarray/swap-bytes thread/close thread/current thread/new thread/receive thread/send trace tracev true? truthy? try tuple tuple/brackets tuple/setmap tuple/slice tuple/sourcemap tuple/type tuple? type unless unmarshal untrace update update-in use values var- varfn varglobal walk walk-ind walk-dict when when-let when-with with with-dyns with-syms with-vars yield zero? zipcoll ) end
def self.specials
def self.specials @specials ||= Set.new %w( break def do fn if quote quasiquote splice set unquote var while ) end
def name_token(name)
def name_token(name) if self.class.specials.include? name Keyword elsif self.class.bundled.include? name Keyword::Reserved else Name::Function end end