
Description="PL/SQL"

Categories = {"database"}

Keywords={
  { Id=1,
    List={"abort", "abs", "absent", "absolute", "access", "according", "action", "ada",
    "add", "admin", "after", "aggregate", "alias", "all", "allocate", "also",
    "alter", "always", "analyse", "analyze", "and", "any", "are", "array",
    "array_agg", "as", "asc", "asensitive", "assertion", "assignment", "asymmetric",
    "at", "atomic", "attribute", "attributes", "authorization", "avg", "backward",
    "base64", "before", "begin", "bernoulli", "between", "binary", "bit",
    "bitvar", "bit_length", "blob", "blocked", "bom", "both", "breadth",
    "by", "cache", "call", "called", "cardinality", "cascade", "cascaded", "case",
    "cast", "catalog", "catalog_name", "ceil", "ceiling", "chain",
    "characteristics", "characters", "character_length",
    "character_set_catalog", "character_set_name", "character_set_schema",
    "char_length", "check", "checked", "checkpoint", "class", "class_origin",
    "clob", "close", "cluster", "coalesce", "cobol", "collate", "collation",
    "collation_catalog", "collation_name", "collation_schema", "collect", "column",
    "columns", "column_name", "command_function", "command_function_code",
    "comment", "comments", "commit", "committed", "completion", "concurrently",
    "condition", "condition_number", "configuration", "connect", "connection",
    "connection_name", "constraint", "constraints", "constraint_catalog",
    "constraint_name", "constraint_schema", "constructor", "contains", "content",
    "continue", "control", "conversion", "convert", "copy", "corr", "corresponding",
    "cost", "count", "covar_pop", "covar_samp", "create", "createdb", "createrole",
    "createuser", "cross", "csv", "cube", "cume_dist", "current", "current_catalog",
    "current_date", "current_default_transform_group", "current_path",
    "current_role", "current_schema", "current_time", "current_timestamp",
    "current_transform_group_for_type", "current_user", "cursor", "cursor_name",
    "cycle", "data", "database", "datalink",  "datetime_interval_code",
    "datetime_interval_precision", "day", "db", "deallocate", "dec", "decimal",
    "declare", "default", "defaults", "deferrable", "deferred", "defined",
    "definer", "degree", "delete", "delimiter", "delimiters", "dense_rank", "depth",
    "deref", "derived", "desc", "describe", "descriptor", "destroy", "destructor",
    "deterministic", "diagnostics", "dictionary", "disable", "discard",
    "disconnect", "dispatch", "distinct", "dlnewcopy", "dlpreviouscopy",
    "dlurlcomplete", "dlurlcompleteonly", "dlurlcompletewrite", "dlurlpath",
    "dlurlpathonly", "dlurlpathwrite", "dlurlscheme", "dlurlserver", "dlvalue",
    "do", "document", "domain", "double", "drop", "dynamic", "dynamic_function",
    "dynamic_function_code", "each", "element", "else", "empty", "enable",
    "encoding", "encrypted", "end", "end-exec", "enum", "equals", "escape", "every",
    "except", "exception", "exclude", "excluding", "exclusive", "exec", "execute",
    "existing", "exists", "exp", "explain", "external", "extract", "false",
    "family", "fetch", "file", "filter", "final", "first", "first_value", "flag",
    "floor", "following", "for", "force", "foreign", "fortran", "forward",
    "found", "free", "freeze", "from", "fs", "full", "function", "functions",
    "fusion", "general", "generated", "get", "global", "go", "goto", "grant",
    "granted", "greatest", "group", "grouping", "handler", "having", "header",
    "hex", "hierarchy", "hold", "host", "hour", "id", "identity", "if", "ignore",
    "ilike", "immediate", "immutable", "implementation", "implicit", "import", "in",
    "including", "increment", "indent", "index", "indexes", "indicator", "infix",
    "inherit", "inherits", "initialize", "initially", "inline", "inner", "inout",
    "input", "insensitive", "insert", "instance", "instantiable", "instead",
    "integrity", "intersect", "intersection", "interval", "into",
    "invoker", "is", "isnull", "isolation", "iterate", "join", "key", "key_member",
    "key_type", "lag", "language", "large", "last", "last_value", "lateral",
    "lc_collate", "lc_ctype", "lead", "leading", "least", "left", "length", "less",
    "level", "library", "like", "like_regex", "limit", "link", "listen", "ln",
    "load", "local", "localtime", "localtimestamp", "location", "locator", "lock",
    "login", "lower", "map", "mapping", "match", "matched", "max", "maxvalue",
    "max_cardinality", "member", "merge", "message_length", "message_octet_length",
    "message_text", "method", "min", "minute", "minvalue", "mod", "mode",
    "modifies", "modify", "module", "month", "more", "move", "multiset", "mumps",
    "name", "names", "namespace", "national", "natural", "nchar", "nclob",
    "nesting", "new", "next", "nfc", "nfd", "nfkc", "nfkd", "nil", "no",
    "nocreatedb", "nocreaterole", "nocreateuser", "noinherit", "nologin", "none",
    "normalize", "normalized", "nosuperuser", "not", "nothing", "notify", "notnull",
    "nowait", "nth_value", "ntile", "null", "nullable", "nullif", "nulls",
    "numeric", "object", "occurrences_regex", "octets", "octet_length", "of", "off",
    "offset", "oids", "old", "on", "only", "open", "operation", "operator",
    "option", "options", "or", "order", "ordering", "ordinality", "others", "out",
    "outer", "output", "over", "overlaps", "overlay", "overriding", "owned",
    "owner", "pad", "parameter", "parameters", "parameter_mode", "parameter_name",
    "parameter_ordinal_position", "parameter_specific_catalog",
    "parameter_specific_name", "parameter_specific_schema", "parser", "partial",
    "partition", "pascal", "passing", "passthrough", "password", "path",
    "percentile_cont", "percentile_disc", "percent_rank", "permission", "placing",
    "plans", "pli", "position", "position_regex", "postfix", "power", "preceding",
    "precision", "prefix", "preorder", "prepare", "prepared", "preserve", "primary",
    "prior", "privileges", "procedural", "procedure", "public", "quote", "range",
    "rank", "read", "reads", "real", "reassign", "recheck", "recovery", "recursive",
    "ref", "references", "referencing", "regr_avgx", "regr_avgy", "regr_count",
    "regr_intercept", "regr_r2", "regr_slope", "regr_sxx", "regr_sxy", "regr_syy",
    "reindex", "relative", "release", "rename", "repeatable", "replace", "replica",
    "requiring", "reset", "respect", "restart", "restore", "restrict", "result",
    "return", "returned_cardinality", "returned_length", "returned_octet_length",
    "returned_sqlstate", "returning", "returns", "revoke", "right", "role",
    "rollback", "rollup", "routine", "routine_catalog", "routine_name",
    "routine_schema", "row", "rows", "row_count", "row_number", "rule", "savepoint",
    "scale", "schema", "schema_name", "scope", "scope_catalog", "scope_name",
    "scope_schema", "scroll", "search", "second", "section", "security", "select",
    "selective", "self", "sensitive", "sequence", "sequences", "serializable",
    "server", "server_name", "session", "session_user", "set", "setof", "sets",
    "share", "show", "similar", "simple", "size", "smallint", "some", "source",
    "space", "specific", "specifictype", "specific_name", "sql", "sqlcode",
    "sqlerror", "sqlexception", "sqlstate", "sqlwarning", "sqrt", "stable",
    "standalone", "start", "state", "statement", "static", "statistics",
    "stddev_pop", "stddev_samp", "stdin", "stdout", "storage", "strict", "strip",
    "structure", "style", "subclass_origin", "sublist", "submultiset", "substring",
    "substring_regex", "sum", "superuser", "symmetric", "sysid", "system",
    "system_user", "table", "tables", "tablesample", "tablespace", "table_name",
    "temp", "template", "temporary", "terminate",  "than", "then", "ties",
    "time", "timestamp", "timezone_hour", "timezone_minute", "to", "token",
    "top_level_count", "trailing", "transaction", "transactions_committed",
    "transactions_rolled_back", "transaction_active", "transform", "transforms",
    "translate", "translate_regex", "translation", "treat", "trigger",
    "trigger_catalog", "trigger_name", "trigger_schema", "trim", "trim_array",
    "true", "truncate", "trusted", "type", "uescape", "unbounded", "uncommitted",
    "under", "unencrypted", "union", "unique", "unknown", "unlink", "unlisten",
    "unnamed", "unnest", "until", "untyped", "update", "upper", "uri", "usage",
    "user", "user_defined_type_catalog", "user_defined_type_code",
    "user_defined_type_name", "user_defined_type_schema", "using", "vacuum",
    "valid", "validator", "value", "values", "varbinary", "variable",
    "variadic", "varying", "var_pop", "var_samp", "verbose", "version", "view",
    "volatile", "when", "whenever", "where", "whitespace", "width_bucket", "window",
    "with", "within", "without", "work", "wrapper", "write", "xml", "xmlagg",
    "xmlattributes", "xmlbinary", "xmlcast", "xmlcomment", "xmlconcat",
    "xmldeclaration", "xmldocument", "xmlelement", "xmlexists", "xmlforest",
    "xmliterate", "xmlnamespaces", "xmlparse", "xmlpi", "xmlquery", "xmlroot",
    "xmlschema", "xmlserialize", "xmltable", "xmltext", "xmlvalidate", "year",
    "yes", "zone"},
  },
  { Id=2,
    List={"boolean", "char", "character", "date", "float", "integer", "int", "long",
            "mlslabel", "number", "raw", "rowid", "varchar", "varchar2", "varray" ,"text", "bigint"},
  },
  { Id=3,
    Regex=[[\:\w+]],
  },
  { Id=4,
    Regex=[[(\w+)\s*\(]],
  },
}

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

IgnoreCase=true

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

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