-- Language definition generated by lang2to3

Description="PL/1"

Keywords={
  { Id=1,
    List={"call", "chksucc", "close", "dcl", "do", "end", "if", "open", "put", "read"},
  },
  
    { Id=2,
    Regex=[[ (afp|do_|er_)\w+]],
    Group=0
  },
  
  { Id=2,
    List={ "black", "blue", 
"bold", "brown", "center", "center_and_trim", "char", "cm", "condensed", "cyan", 
"default_map", "double_dot", "errer", "expanded", "extrabold", "extracond", 
"extraexp", "extralight", "fals", "fatal", "focenter", "fojustify", "foleft", 
"foright", "green", "inch", "italic", "light", "l_ft", "magenta", "media", 
"medium", "mm", "noerror", "normal", "noshade", "orient0", "orient180", 
"orient270", "orient90", "orientdoc", "point_to_pel", "position_and_trim", 
"red", "roman", "rotate0", "rotate180", "rotate270", "rotate90", 
"rotate_default", "r_ght", "scale_to_fit", "screen", "semibold", "semicond", 
"semiexp", "semilight", "severe", "stndard", "tru", "txtor0_0", "txtor180_270", 
"txtor270_0", "txtor90_180", "u1440", "u240", "ultrabold", "ultracond", "ultraexp", "ultralight", "verbottom", "vercenter", 
"vertop", "warning", "xabs", "xdirection", "xrel", "yabs", "ydirection", 
"yellow", "ylines", "yrel"},
  },
  { Id=3,
    List={"abnormal", "abs", "acos", "acosf", "add", "addbuff", "addr", 
    "addrdata", "alias", "aligned", "all", "alloc", "allocate", "allocation", 
    "allocn", "allocsize", "any", "anycondition", "area", "ascii", "asin", "asinf", 
    "asm", "asmtdli", "assembler", "assignable", "atan", "atand", "atanf", "atanh", 
    "attach", "attention", "attn", "auto", "automatic", "availablearea", 
    "backwards", "based", "begin", "bigendian", "bin", "binary", "binaryvalue", 
    "bind", "binvalue", "bit", "bitloc", "bitlocation", "bkwd", "blksize", "bool", 
    "buf", "buffered", "buffers", "bufnd", "bufni", "bufoff", "bufsp", "builtin", 
    "bx", "by", "byaddr", "byte", "byvalue", "b4",  "cast", "cds", "ceil", "center", 
    "centerleft", "centerright", "centre", "centreleft", "centreright", "char", 
    "character", "charg", "chargraphic", "charval", "check", "checkstg",  "cmpat", 
    "cobol", "col", "collate", "column", "comment", "compare", "compiledate", 
    "compiletime", "completion", "complex", "cond", "condition", "conjg", "conn", 
    "connected", "consecutive", 
    "controlled", "conv", "conversion", "copy", "cos", "cosd", "cosf", "cosh", 
    "count", "counter", "cpln", "cplx", "cs", "cstg", "ctl", "ctlasa", "ctl360", 
    "currentsize", "currentstorage", "data", "datafield", "date", "datetime", 
    "days", "daystodate", "daystosecs", "db",  "dec", "decimal", "declare", "def", 
    "default", "define", "defined", "delay", "delete", "descriptor", "descriptors", 
    "detach", "dft", "dim", "dimacross", "dimension", "direct", "display", "divide", 
    "downthru", "edit", "else", "empty",  "endfile", "endpage", "entry", 
    "entryaddr", "env", "environment", "epsilon", "erf", "erfc", "error", "event", 
    "excl", "exclusive", "exit", "exp", "expf", "exponent", "exports", "ext", 
    "external", "fb", "fbs", "fetch", "file", "fileddint", "fileddtest", 
    "fileddword", "fileid", "fileopen", "fileread", "fileseek", "filetell", 
    "filewrite", "finish", "first", "fixed", "fixedbin", "fixeddec", 
    "fixedoverflow", "float", "floatbin", "floatdec", "floor", "flush", "fofl", 
    "format", "fortran", "free", "from", "fromalien", "fs"
    , "gamma", "generic", "genkey", "get", "getenv", "go", "goto", "graphic", "gx", 
    "handle", "hbound", "hex", "hexadec", "heximage", "high", "huge", "iand", 
    "ieee", "ieor",  "ignore", "imag", "in", "index", "indexarea", "indexed", 
    "init", "initial", "inline", "inot", "input", "int", "inter", "internal", 
    "into", "invalidop", "ior", "irred", "irreducible", "isfinite", "isigned", 
    "isinf", "isll", "ismain", "isnan", "isnormal", "iszero", "isrl", "iunsigned", 
    "key", "keyed", "keyfrom", "keylength", "keyloc", "keyto", "label", "last", 
    "lbound", "leave", "left", "length", "like", "limited", "line", "lineno", 
    "linesize", "linkage", "list", "littleendian", "loc", "locate", "location", 
    "log", "logf", "loggamma", "log10", "log10f", "log2", "low", "lowercase", 
    "lower2", "maccol", "maclmar", "macname", "macrmar", "main", "max", "maxexp", 
    "maxlength", "memconvert", "memindex", "memsearch", "memsearchr", "memverify", 
    "memverifyr", "min", "minexp", "mod", "mpstr", "multiply", "name", "native", 
    "ncp", "new", "nocharg", "nochargraphic", "nocheck", "nocmpat", "noconv", "noconversion", "nodescriptor", 
    "noexecops", "nofixedoverflow", "nofofl", "noinline", "nolock", "nomap", 
    "nomapin", "nomapout", "nonassignable", "nonconnected", "nonnative", "noofl", 
    "nooverflow", "norescan", "normal", "nosize", "nostrg", "nostringrange", 
    "nostringsize", "nostrz", "nosubrg", "nosubscriptrange", "noufl", "nounderflow", 
    "nowrite", "nozdiv", "nozerodivide", "null", "offset", "offsetadd", 
    "offsetdiff", "offsetsubtract", "offsetvalue", "ofl", "omitted", "on", "onchar", 
    "oncode", "oncondcond", "oncondid", "oncount", "onfile", "ongsource", "onkey", 
    "online", "onloc", "onoffset", "onsource", "onsubcode", "onwchar", "onwsource", 
    "optional", "options", "order", "ordinal", "ordinalname", "ordinalpred", 
    "ordinalsucc", "other", "otherwise", "output", "overflow", "package", 
    "packagename", "page", "pageno", "pagesize", "parameter", "parmset", "password", 
    "pending", "pic", "picspec", "picture", "places", "pliascii", "plicanc", 
    "plickpt", "plidelete", "plidump",
    "pliebcdic", "plifill", "plifree", "plimove", "pliover", "plirest", "pliretc", 
    "pliretv", "plisaxa", "plisaxb", "plisaxc", "plisrta", "plisrtb", "plisrtc", 
    "plisrtd", "plitdli", "pointer", "pointeradd", "pointerdiff", "pointersubtract", 
    "pointervalue", "poly", "pos", "position", "prec", "precision", "pred", 
    "present", "print", "priority", "proc", "procedure", "procedurename", 
    "procname", "prod", "ptr", "ptradd", "ptrdiff", "ptrsubtract", "ptrvalue",  
    "putenv", "quote", "radix", "raise2", "random", "range", "rank", "real", 
    "record", "recsize", "recursive", "red", "reducible", "reentrant", "refer", 
    "regional", "reg12", "release", "rem", "reorder", "repattern", "repeat", 
    "replaceby2", "reply", "reread", "rescan", "reserved", "reserves", "resignal", 
    "respec", "retcode", "return", "returns", "reuse", "reverse", "revert", 
    "rewrite", "right", "round", "samekey", "scalarvarying", "scale", "search", 
    "searchr", "secs", "secstodate", "secstodays", "select", "seql", "sequential", 
    "serialize4", "set", "sign", "signal", "signed", "sin", "sind", "sinf", "sinh", "sis", "size", "skip", "snap", 
    "sourcefile", "sourceline", "sqrt", "sqrtf", "stackaddr", "statement", "static", 
    "status", "stg", "stmt", "stop", "storage", "stream", "strg", "string", 
    "stringrange", "stringsize", "structure", "strz", "subrg", "subscriptrange", 
    "substr", "subtract", "succ", "sum", "suppress", "sysin", "sysnull", "sysparm", 
    "sysprint", "system", "sysversion", "tally", "tan", "tand", "tanf", "tanh", 
    "task", "then", "thread", "threadid", "time", "tiny", "title", "to", "total", 
    "tpk", "tpm", "transient", "translate", "transmit", "trim", "trkofl", "trunc", 
    "type", "ufl", "ulength", "ulength16", "ulength8", "unal", "unaligned", 
    "unallocated", "unbuf", "unbuffered", "undefinedfile", "underflow", "undf", 
    "unlock", "unsigned", "unspec", "until", "update", "upos", "uppercase", 
    "upthru", "usubstr", "uvalid", "uwidth", "valid", "validdate", "value", "var", 
    "varglist", "vargsize", "variable", "varying", "varyingz", "vb", "vbs", 
    "verify", "verifyr", "vs", "vsam", "wait", "wchar", "wcharval", "weekday", "when", "whigh", "while", "widechar", 
    "wlow", "write", "xmlchar", "y4date", "y4julian", "y4year", "zdiv", 
    "zerodivide"},
  },
  { Id=4,
    Regex=[[(\w+)\s*\(]],
  },
}

Strings={
  Delimiter=[["]],
}

IgnoreCase=true

Comments={
  { Block=false,
    Delimiter= { [[\-\-]] },
  },
  { Block=true,
    Nested=false,
    Delimiter= { [[\/\*]],[[\*\/]],}
  }
}

Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\:|\&|<|>|\!|\=|\/|\*|\%|\+|\-]]

