# Leo colorizer control file for pl1 mode.
# This file is in the public domain.

# Properties for pl1 mode.
properties = {
    "commentEnd": "*/",
    "commentStart": "/*",
    "wordBreakChars": ",+-=<>/?^&*",
}

# Attributes dict for pl1_main ruleset.
pl1_main_attributes_dict = {
    "default": "null",
    "digit_re": "",
    "escape": "\\",
    "highlight_digits": "false",
    "ignore_case": "true",
    "no_word_sep": "",
}

# Dictionary of attributes dictionaries for pl1 mode.
attributesDictDict = {
    "pl1_main": pl1_main_attributes_dict,
}

# Keywords dict for pl1_main ruleset.
pl1_main_keywords_dict = {
    "%include": "keyword1",
    "a": "keyword2",
    "abnormal": "keyword2",
    "abs": "keyword3",
    "acos": "keyword3",
    "acosf": "keyword3",
    "add": "keyword3",
    "addr": "keyword3",
    "addrdata": "keyword3",
    "address": "keyword3",
    "alias": "keyword1",
    "aligned": "keyword2",
    "all": "keyword3",
    "alloc": "keyword1",
    "allocate": "keyword1",
    "allocation": "keyword3",
    "allocn": "keyword3",
    "allocsize": "keyword3",
    "any": "keyword3",
    "anycond": "keyword2",
    "anycondition": "keyword2",
    "area": "keyword2",
    "asgn": "keyword2",
    "asin": "keyword3",
    "asinf": "keyword3",
    "asm": "keyword2",
    "assembler": "keyword2",
    "assignable": "keyword2",
    "atan": "keyword3",
    "atand": "keyword3",
    "atanf": "keyword3",
    "atanh": "keyword3",
    "attach": "keyword1",
    "attention": "keyword2",
    "attn": "keyword2",
    "auto": "keyword2",
    "automatic": "keyword2",
    "availablearea": "keyword3",
    "b": "keyword2",
    "b3": "keyword2",
    "b4": "keyword2",
    "based": "keyword2",
    "begin": "keyword1",
    "bigendian": "keyword2",
    "bin": "keyword2",
    "binary": "keyword2",
    "binaryvalue": "keyword3",
    "bind": "keyword3",
    "binvalue": "keyword3",
    "bit": "keyword2",
    "bitloc": "keyword3",
    "bitlocation": "keyword3",
    "bool": "keyword3",
    "buf": "keyword2",
    "buffered": "keyword2",
    "builtin": "keyword2",
    "bx": "keyword2",
    "by": "keyword1",
    "byaddr": "keyword2",
    "byname": "keyword1",
    "byte": "keyword3",
    "byvalue": "keyword2",
    "c": "keyword2",
    "call": "keyword1",
    "cast": "keyword3",
    "cdecl": "keyword2",
    "cds": "keyword3",
    "ceil": "keyword3",
    "cell": "keyword2",
    "center": "keyword3",
    "centerright": "keyword3",
    "centre": "keyword3",
    "centreleft": "keyword3",
    "centreright": "keyword3",
    "char": "keyword2",
    "character": "keyword2",
    "charg": "keyword3",
    "chargraphic": "keyword3",
    "chargval": "keyword3",
    "checkstg": "keyword3",
    "close": "keyword1",
    "cobol": "keyword2",
    "collate": "keyword3",
    "column": "keyword2",
    "compare": "keyword3",
    "complex": "keyword2",
    "cond": "keyword2",
    "condition": "keyword2",
    "conjg": "keyword3",
    "conn": "keyword2",
    "connected": "keyword2",
    "controlled": "keyword2",
    "conv": "keyword2",
    "conversion": "keyword2",
    "copy": "keyword1",
    "cos": "keyword3",
    "cosd": "keyword3",
    "cosf": "keyword3",
    "cosh": "keyword3",
    "count": "keyword3",
    "cplx": "keyword2",
    "cs": "keyword3",
    "cstg": "keyword3",
    "ctl": "keyword2",
    "currentsize": "keyword3",
    "currentstorage": "keyword3",
    "data": "keyword2",
    "datafield": "keyword3",
    "date": "keyword3",
    "datetime": "keyword3",
    "days": "keyword3",
    "daystodate": "keyword3",
    "daystosecs": "keyword3",
    "dcl": "keyword1",
    "dec": "keyword2",
    "decimal": "keyword2",
    "declare": "keyword1",
    "def": "keyword2",
    "default": "keyword1",
    "define": "keyword1",
    "defined": "keyword2",
    "delay": "keyword1",
    "delete": "keyword1",
    "descriptor": "keyword2",
    "descriptors": "keyword2",
    "detach": "keyword1",
    "dft": "keyword1",
    "dim": "keyword2",
    "dimension": "keyword2",
    "direct": "keyword2",
    "display": "keyword1",
    "divide": "keyword3",
    "do": "keyword1",
    "downthru": "keyword1",
    "e": "keyword2",
    "edit": "keyword2",
    "else": "keyword1",
    "empty": "keyword3",
    "end": "keyword1",
    "endfile": "keyword2",
    "endpage": "keyword2",
    "entry": "keyword1",
    "entryaddr": "keyword3",
    "env": "keyword2",
    "environment": "keyword2",
    "epsilon": "keyword3",
    "erfc": "keyword3",
    "error": "keyword2",
    "exclusive": "keyword2",
    "exit": "keyword1",
    "exp": "keyword3",
    "expf": "keyword3",
    "exponent": "keyword3",
    "exports": "keyword2",
    "ext": "keyword2",
    "external": "keyword2",
    "f": "keyword2",
    "fetch": "keyword1",
    "fetchable": "keyword2",
    "file": "keyword2",
    "fileddint": "keyword3",
    "fileddtest": "keyword3",
    "fileddword": "keyword3",
    "fileid": "keyword3",
    "fileopen": "keyword3",
    "fileread": "keyword3",
    "fileseek": "keyword3",
    "filetell": "keyword3",
    "filewrite": "keyword3",
    "finish": "keyword2",
    "first": "keyword3",
    "fixed": "keyword2",
    "fixedoverflow": "keyword2",
    "float": "keyword2",
    "floor": "keyword3",
    "flush": "keyword1",
    "fofl": "keyword2",
    "format": "keyword2",
    "fortran": "keyword2",
    "free": "keyword1",
    "from": "keyword1",
    "fromalien": "keyword2",
    "g": "keyword2",
    "gamma": "keyword3",
    "generic": "keyword2",
    "get": "keyword1",
    "getenv": "keyword3",
    "go": "keyword1",
    "goto": "keyword1",
    "graphic": "keyword2",
    "gx": "keyword2",
    "handle": "keyword2",
    "hbound": "keyword3",
    "hex": "keyword3",
    "hexadec": "keyword2",
    "heximage": "keyword3",
    "high": "keyword3",
    "huge": "keyword3",
    "iand": "keyword3",
    "ieee": "keyword2",
    "ieor": "keyword3",
    "if": "keyword1",
    "ignore": "keyword1",
    "imag": "keyword3",
    "imported": "keyword2",
    "index": "keyword3",
    "init": "keyword2",
    "initial": "keyword2",
    "inline": "keyword2",
    "inot": "keyword3",
    "input": "keyword2",
    "inter": "keyword2",
    "internal": "keyword2",
    "into": "keyword1",
    "invalidop": "keyword2",
    "ior": "keyword3",
    "irred": "keyword2",
    "irreducible": "keyword2",
    "isigned": "keyword3",
    "isll": "keyword3",
    "ismain": "keyword3",
    "isrl": "keyword3",
    "iterate": "keyword1",
    "iunsigned": "keyword3",
    "key": "keyword1",
    "keyed": "keyword2",
    "keyfrom": "keyword1",
    "keyto": "keyword1",
    "l": "keyword2",
    "label": "keyword2",
    "last": "keyword3",
    "lbound": "keyword3",
    "leave": "keyword1",
    "left": "keyword3",
    "length": "keyword3",
    "like": "keyword2",
    "limited": "keyword2",
    "line": "keyword1",
    "lineno": "keyword3",
    "linesize": "keyword2",
    "linkage": "keyword2",
    "list": "keyword2",
    "littleendian": "keyword2",
    "loc": "keyword3",
    "locate": "keyword1",
    "location": "keyword3",
    "log": "keyword3",
    "log10": "keyword3",
    "log10f": "keyword3",
    "log2": "keyword3",
    "logf": "keyword3",
    "loggamma": "keyword3",
    "loop": "keyword1",
    "low": "keyword3",
    "lower2": "keyword3",
    "lowercase": "keyword3",
    "m": "keyword2",
    "main": "keyword2",
    "max": "keyword3",
    "maxexp": "keyword3",
    "maxlength": "keyword3",
    "min": "keyword3",
    "minexp": "keyword3",
    "mod": "keyword3",
    "mpstr": "keyword3",
    "multiply": "keyword3",
    "name": "keyword1",
    "native": "keyword2",
    "new": "keyword3",
    "nocharg": "keyword2",
    "nochargraphic": "keyword2",
    "nodescriptor": "keyword2",
    "noexecops": "keyword2",
    "nomap": "keyword2",
    "nomapin": "keyword2",
    "nomapout": "keyword2",
    "nonasgn": "keyword2",
    "nonassignable": "keyword2",
    "nonconn": "keyword2",
    "nonconnected": "keyword2",
    "nonnative": "keyword2",
    "nonvar": "keyword2",
    "nonvarying": "keyword2",
    "normal": "keyword2",
    "null": "keyword3",
    "offestadd": "keyword3",
    "offestdiff": "keyword3",
    "offestsubtract": "keyword3",
    "offestvalue": "keyword3",
    "offset": "keyword2",
    "ofl": "keyword2",
    "omitted": "keyword3",
    "on": "keyword1",
    "onchar": "keyword3",
    "oncode": "keyword3",
    "oncondid": "keyword3",
    "oncondond": "keyword3",
    "oncount": "keyword3",
    "onfile": "keyword3",
    "ongsource": "keyword3",
    "onkey": "keyword3",
    "onloc": "keyword3",
    "onsource": "keyword3",
    "onsubcode": "keyword3",
    "onwchar": "keyword3",
    "onwsource": "keyword3",
    "open": "keyword1",
    "optional": "keyword2",
    "options": "keyword2",
    "optlink": "keyword2",
    "order": "keyword2",
    "ordinal": "keyword1",
    "ordinalname": "keyword3",
    "ordinalpred": "keyword3",
    "ordinalsucc": "keyword3",
    "other": "keyword1",
    "otherwise": "keyword1",
    "output": "keyword2",
    "overflow": "keyword2",
    "p": "keyword2",
    "package": "keyword1",
    "packagename": "keyword3",
    "page": "keyword1",
    "pageno": "keyword3",
    "pagesize": "keyword2",
    "parameter": "keyword2",
    "pic": "keyword2",
    "picture": "keyword2",
    "places": "keyword3",
    "plianc": "keyword3",
    "pliascii": "keyword3",
    "plickpt": "keyword3",
    "plidelete": "keyword3",
    "plidump": "keyword3",
    "pliebcdic": "keyword3",
    "plifill": "keyword3",
    "plifree": "keyword3",
    "plimove": "keyword3",
    "pliover": "keyword3",
    "plirest": "keyword3",
    "pliretc": "keyword3",
    "pliretv": "keyword3",
    "plisaxa": "keyword3",
    "plisaxb": "keyword3",
    "plisrta": "keyword3",
    "plisrtb": "keyword3",
    "plisrtc": "keyword3",
    "plisrtd": "keyword3",
    "pointer": "keyword2",
    "pointeradd": "keyword3",
    "pointerdiff": "keyword3",
    "pointersubtract": "keyword3",
    "pointervalue": "keyword3",
    "poly": "keyword3",
    "pos": "keyword2",
    "position": "keyword2",
    "prec": "keyword2",
    "precision": "keyword2",
    "pred": "keyword3",
    "present": "keyword3",
    "print": "keyword2",
    "proc": "keyword1",
    "procedure": "keyword1",
    "procedurename": "keyword3",
    "procname": "keyword3",
    "prod": "keyword3",
    "ptr": "keyword2",
    "ptradd": "keyword3",
    "ptrdiff": "keyword3",
    "ptrsubtract": "keyword3",
    "ptrvalue": "keyword3",
    "put": "keyword1",
    "putenv": "keyword3",
    "r": "keyword2",
    "radix": "keyword3",
    "raise": "keyword3",
    "random": "keyword3",
    "range": "keyword2",
    "rank": "keyword3",
    "read": "keyword1",
    "real": "keyword2",
    "record": "keyword2",
    "recursive": "keyword2",
    "red": "keyword2",
    "reducible": "keyword2",
    "reentrant": "keyword2",
    "refer": "keyword2",
    "release": "keyword1",
    "rem": "keyword3",
    "reorder": "keyword2",
    "repattern": "keyword3",
    "repeat": "keyword1",
    "reply": "keyword1",
    "reserved": "keyword2",
    "reserves": "keyword2",
    "resignal": "keyword1",
    "respec": "keyword3",
    "retcode": "keyword2",
    "return": "keyword1",
    "returns": "keyword2",
    "reverse": "keyword3",
    "revert": "keyword1",
    "rewrite": "keyword1",
    "right": "keyword3",
    "round": "keyword3",
    "samekey": "keyword3",
    "scale": "keyword3",
    "search": "keyword3",
    "searchr": "keyword3",
    "secs": "keyword3",
    "secstodate": "keyword3",
    "secstodays": "keyword3",
    "select": "keyword1",
    "seql": "keyword2",
    "sequential": "keyword2",
    "set": "keyword1",
    "sign": "keyword3",
    "signal": "keyword1",
    "signed": "keyword3",
    "sin": "keyword3",
    "sind": "keyword3",
    "sinf": "keyword3",
    "sinh": "keyword3",
    "size": "keyword3",
    "skip": "keyword1",
    "snap": "keyword1",
    "sourcefile": "keyword3",
    "sourceline": "keyword3",
    "sqrt": "keyword3",
    "sqrtf": "keyword3",
    "static": "keyword2",
    "stdcall": "keyword2",
    "stg": "keyword3",
    "stop": "keyword1",
    "storage": "keyword3",
    "stream": "keyword2",
    "strg": "keyword2",
    "string": "keyword3",
    "stringrange": "keyword2",
    "stringsize": "keyword2",
    "structure": "keyword1",
    "strz": "keyword2",
    "subrg": "keyword2",
    "subscriptrange": "keyword2",
    "substr": "keyword3",
    "subtract": "keyword3",
    "succ": "keyword3",
    "sum": "keyword3",
    "sysnull": "keyword3",
    "system": "keyword2",
    "tally": "keyword3",
    "tan": "keyword3",
    "tand": "keyword3",
    "tanf": "keyword3",
    "tanh": "keyword3",
    "task": "keyword2",
    "then": "keyword1",
    "thread": "keyword1",
    "threadid": "keyword3",
    "time": "keyword3",
    "tiny": "keyword3",
    "title": "keyword2",
    "to": "keyword1",
    "translate": "keyword3",
    "transmit": "keyword2",
    "trim": "keyword3",
    "trunc": "keyword3",
    "tstack": "keyword1",
    "type": "keyword3",
    "ufl": "keyword2",
    "unal": "keyword2",
    "unaligned": "keyword2",
    "unallocated": "keyword3",
    "unbuf": "keyword2",
    "unbuffered": "keyword2",
    "undefinedfile": "keyword2",
    "underflow": "keyword2",
    "undf": "keyword2",
    "union": "keyword2",
    "unlock": "keyword1",
    "unsigned": "keyword2",
    "unspec": "keyword3",
    "until": "keyword1",
    "update": "keyword2",
    "uppercase": "keyword3",
    "upthru": "keyword1",
    "valid": "keyword3",
    "validdate": "keyword3",
    "value": "keyword2",
    "var": "keyword2",
    "varglist": "keyword3",
    "vargsizer": "keyword3",
    "variable": "keyword2",
    "varying": "keyword2",
    "varyingz": "keyword2",
    "varz": "keyword2",
    "verify": "keyword3",
    "verifyr": "keyword3",
    "wait": "keyword1",
    "wchar": "keyword2",
    "wcharval": "keyword3",
    "weekday": "keyword3",
    "when": "keyword1",
    "whigh": "keyword3",
    "while": "keyword1",
    "widechar": "keyword2",
    "winmain": "keyword2",
    "wlow": "keyword3",
    "write": "keyword1",
    "wx": "keyword2",
    "x": "keyword2",
    "xn": "keyword2",
    "xu": "keyword2",
    "y4date": "keyword3",
    "y4julian": "keyword3",
    "y4year": "keyword3",
    "zdiv": "keyword2",
    "zerodivide": "keyword2",
}

# Dictionary of keywords dictionaries for pl1 mode.
keywordsDictDict = {
    "pl1_main": pl1_main_keywords_dict,
}

# Rules for pl1_main ruleset.


def pl1_rule0(colorer, s, i):
    return colorer.match_span(s, i, kind="comment1", begin="/*", end="*/")


def pl1_rule1(colorer, s, i):
    return colorer.match_span(s, i, kind="literal1", begin="'", end="'")


def pl1_rule2(colorer, s, i):
    return colorer.match_span(s, i, kind="literal1", begin="\"", end="\"")


def pl1_rule3(colorer, s, i):
    return colorer.match_eol_span_regexp(
        s, i, kind="keyword2", regexp="\\* *process", at_line_start=True
    )


def pl1_rule4(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="=")


def pl1_rule5(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="+")


def pl1_rule6(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="-")


def pl1_rule7(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="*")


def pl1_rule8(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="/")


def pl1_rule9(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq=">")


def pl1_rule10(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="<")


def pl1_rule11(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="^")


def pl1_rule12(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="&")


def pl1_rule13(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="|")


def pl1_rule14(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq=".")


def pl1_rule15(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq=",")


def pl1_rule16(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq=";")


def pl1_rule17(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq=")")


def pl1_rule18(colorer, s, i):
    return colorer.match_plain_seq(s, i, kind="operator", seq="(")


def pl1_rule19(colorer, s, i):
    return colorer.match_mark_previous(
        s, i, kind="label", pattern=":", at_whitespace_end=True, exclude_match=True
    )


def pl1_rule20(colorer, s, i):
    return colorer.match_mark_previous(s, i, kind="function", pattern="(", exclude_match=True)


def pl1_rule21(colorer, s, i):
    return colorer.match_keywords(s, i)


# Rules dict for pl1_main ruleset.
rulesDict1 = {
    "\"": [
        pl1_rule2,
    ],
    "%": [
        pl1_rule21,
    ],
    "&": [
        pl1_rule12,
    ],
    "'": [
        pl1_rule1,
    ],
    "(": [
        pl1_rule18,
        pl1_rule20,
    ],
    ")": [
        pl1_rule17,
    ],
    "*": [
        pl1_rule3,
        pl1_rule7,
    ],
    "+": [
        pl1_rule5,
    ],
    ",": [
        pl1_rule15,
    ],
    "-": [
        pl1_rule6,
    ],
    ".": [
        pl1_rule14,
    ],
    "/": [
        pl1_rule0,
        pl1_rule8,
    ],
    "0": [
        pl1_rule21,
    ],
    "1": [
        pl1_rule21,
    ],
    "2": [
        pl1_rule21,
    ],
    "3": [
        pl1_rule21,
    ],
    "4": [
        pl1_rule21,
    ],
    "5": [
        pl1_rule21,
    ],
    "6": [
        pl1_rule21,
    ],
    "7": [
        pl1_rule21,
    ],
    "8": [
        pl1_rule21,
    ],
    "9": [
        pl1_rule21,
    ],
    ":": [
        pl1_rule19,
    ],
    ";": [
        pl1_rule16,
    ],
    "<": [
        pl1_rule10,
    ],
    "=": [
        pl1_rule4,
    ],
    ">": [
        pl1_rule9,
    ],
    "@": [
        pl1_rule21,
    ],
    "A": [
        pl1_rule21,
    ],
    "B": [
        pl1_rule21,
    ],
    "C": [
        pl1_rule21,
    ],
    "D": [
        pl1_rule21,
    ],
    "E": [
        pl1_rule21,
    ],
    "F": [
        pl1_rule21,
    ],
    "G": [
        pl1_rule21,
    ],
    "H": [
        pl1_rule21,
    ],
    "I": [
        pl1_rule21,
    ],
    "J": [
        pl1_rule21,
    ],
    "K": [
        pl1_rule21,
    ],
    "L": [
        pl1_rule21,
    ],
    "M": [
        pl1_rule21,
    ],
    "N": [
        pl1_rule21,
    ],
    "O": [
        pl1_rule21,
    ],
    "P": [
        pl1_rule21,
    ],
    "Q": [
        pl1_rule21,
    ],
    "R": [
        pl1_rule21,
    ],
    "S": [
        pl1_rule21,
    ],
    "T": [
        pl1_rule21,
    ],
    "U": [
        pl1_rule21,
    ],
    "V": [
        pl1_rule21,
    ],
    "W": [
        pl1_rule21,
    ],
    "X": [
        pl1_rule21,
    ],
    "Y": [
        pl1_rule21,
    ],
    "Z": [
        pl1_rule21,
    ],
    "^": [
        pl1_rule11,
    ],
    "a": [
        pl1_rule21,
    ],
    "b": [
        pl1_rule21,
    ],
    "c": [
        pl1_rule21,
    ],
    "d": [
        pl1_rule21,
    ],
    "e": [
        pl1_rule21,
    ],
    "f": [
        pl1_rule21,
    ],
    "g": [
        pl1_rule21,
    ],
    "h": [
        pl1_rule21,
    ],
    "i": [
        pl1_rule21,
    ],
    "j": [
        pl1_rule21,
    ],
    "k": [
        pl1_rule21,
    ],
    "l": [
        pl1_rule21,
    ],
    "m": [
        pl1_rule21,
    ],
    "n": [
        pl1_rule21,
    ],
    "o": [
        pl1_rule21,
    ],
    "p": [
        pl1_rule21,
    ],
    "q": [
        pl1_rule21,
    ],
    "r": [
        pl1_rule21,
    ],
    "s": [
        pl1_rule21,
    ],
    "t": [
        pl1_rule21,
    ],
    "u": [
        pl1_rule21,
    ],
    "v": [
        pl1_rule21,
    ],
    "w": [
        pl1_rule21,
    ],
    "x": [
        pl1_rule21,
    ],
    "y": [
        pl1_rule21,
    ],
    "z": [
        pl1_rule21,
    ],
    "|": [
        pl1_rule13,
    ],
}

# x.rulesDictDict for pl1 mode.
rulesDictDict = {
    "pl1_main": rulesDict1,
}

# Import dict for pl1 mode.
importDict = {}
