class Rouge::Lexers::Nial

def self.consts

def self.consts
  @consts ||= Set.new %w(false null pi true)
end

def self.funcs

def self.funcs
  @funcs ||= Set.new ["operation", "expression", "and", "abs",
            "allbools", "allints", "allchars", "allin",
            "allreals", "allnumeric", "append",
            "arcsin", "arccos", "appendfile", "apply",
            "arctan", "atomic", "assign", "atversion",
            "axes", "cart", "break", "blend", "breaklist",
            "breakin", "bye", "callstack", "choose", "char",
            "ceiling", "catenate", "charrep", "check_socket",
            "cos", "content", "close", "clearws",
            "clearprofile", "cols", "continue", "copyright",
            "cosh", "cull", "count", "diverse", "deepplace",
            "cutall", "cut", "display", "deparse",
            "deepupdate", "descan", "depth", "diagram",
            "div", "divide", "drop", "dropright", "edit",
            "empty", "expression", "exit", "except", "erase",
            "equal", "eval", "eraserecord", "execute", "exp",
            "external", "exprs", "findall", "find", 
            "fault", "falsehood", "filestatus", "filelength",
            "filepath", "filetally", "floor", "first",
            "flip", "fuse", "fromraw", "front",
            "gage", "getfile", "getdef", "getcommandline",
            "getenv", "getname", "hitch", "grid", "getsyms",
            "gradeup", "gt", "gte", "host", "in", "inverse",
            "innerproduct", "inv", "ip", "ln", "link", "isboolean",
            "isinteger", "ischar", "isfault", "isreal", "isphrase",
            "isstring", "istruthvalue", "last", "laminate",
            "like", "libpath", "library", "list", "load",
            "loaddefs", "nonlocal", "max", "match", "log",
            "lt", "lower", "lte", "mate", "min", "maxlength",
            "mod", "mix", "minus", "nialroot", "mold", "not",
            "numeric", "no_op", "no_expr", "notin",
            "operation", "open", "or", "opposite", "opp",
            "operators", "plus", "pick", "pack", "pass", "pair", "parse",
            "paste", "phrase", "place", "picture", "placeall",
            "power", "positions", "post", "quotient", "putfile",
            "profile", "prod", "product", "profiletree",
            "profiletable", "quiet_fault", "raise", "reach",
            "random", "reciprocal", "read", "readfile",
            "readchar", "readarray", "readfield",
            "readscreen", "readrecord", "recip", "reshape",
            "seek", "second", "rest", "reverse", "restart",
            "return_status", "scan", "save", "rows", "rotate",
            "seed", "see", "sublist", "sin", "simple", "shape",
            "setformat", "setdeftrace", "set", "seeusercalls",
            "seeprimcalls", "separator", "setwidth", "settrigger",
            "setmessages", "setlogname", "setinterrupts",
            "setprompt", "setprofile", "sinh", "single",
            "sqrt", "solitary", "sketch", "sleep",
            "socket_listen", "socket_accept", "socket_close",
            "socket_bind", "socket_connect", "socket_getline",
            "socket_receive", "socket_peek", "socket_read",
            "socket_send", "socket_write", "solve", "split",
            "sortup", "string", "status", "take", "symbols",
            "sum", "system", "tan", "tally", "takeright",
            "tanh", "tell", "tr", "times", "third", "time",
            "toupper", "tolower", "timestamp", "tonumber",
            "toraw", "toplevel", "transformer", "type",
            "transpose", "trs", "truth", "unequal",
            "variable", "valence", "up", "updateall",
            "update", "vacate", "value", "version", "vars",
            "void", "watch", "watchlist", "write", "writechars",
            "writearray", "writefile", "writefield",
            "writescreen", "writerecord"]
end

def self.keywords

def self.keywords
  @keywords ||= Set.new ["is", "gets", "op", "tr", ";",
               "if", "then", "elseif", "else",
               "endif", "case", "from", "endcase",
               "begin", "end", "for", "with",
               "endfor", "while", "do", "endwhile",
               "repeat", "until", "endrepeat"]
end

def self.operators

def self.operators
  @operators||= Set.new [".",  "!", "#", "+", "*", "-", "<<",
           "/", "<", ">>", "<=", ">", "=", ">=", "@", "|", "~="]
end

def self.punctuations

def self.punctuations
  @punctuations ||= Set.new [ "{", "}", "[", "]", ",", "(", ")", ":=", ":", ";"]
end

def self.transformers

def self.transformers
  @transformers ||= Set.new ["accumulate", "across",
  "bycols", "bykey",  "byrows",
  "converse",  "down",
  "eachboth", "eachall", "each",
  "eachleft", "eachright",
  "filter", "fold", "fork",
  "grade",  "inner", "iterate",
  "leaf",  "no_tr", "outer",
  "partition", "rank", "recur",
  "reduce", "reducecols", "reducerows",
  "sort", "team", "timeit", "twig"]
end