# JOE syntax highlight file for COBOL =Idle =Bad =Preproc =Define +Preproc =Comment =IncLocal +String +Preproc =IncSystem +Preproc =Constant =String +Constant =Number +Constant =Boolean +Constant =Character +String =Escape =StringEscape +Escape =CharacterEscape +StringEscape =Type =Keyword =Operator +Keyword =Statement +Keyword =Conditional +Statement =Loop +Statement =Ident :reset Idle * idle noeat "*" line_comment recolor=-1 " \t" reset :line_comment Comment comment * line_comment "BFHNTX" line_comment noeat call=comment_todo.comment_todo() "\n" reset # All following states are for when we're not in a preprocessor line :idle Idle * idle "\n" reset "0" first_digit recolor=-1 "1-9" decimal recolor=-1 "." maybe_float "\"" string recolor=-1 "'" char recolor=-1 "a-zA-Z_" ident buffer :first_digit Number * idle noeat "xX" hex "." float "eE" epart "0-7" octal "89" bad_number recolor=-1 :bad_number Bad * idle noeat "0-9" bad_number :octal Number * idle noeat "0-7" octal "89" bad_number recolor=-1 :hex Number * idle noeat "0-9A-Fa-f" hex :decimal Number * idle noeat "0-9" decimal "eE" epart "." float :maybe_float Number * idle recolor=-2 noeat "0-9" float recolor=-2 :float Number * idle noeat "eE" epart "0-9" float :epart Number * idle noeat "0-9+\-" enum :enum Number * idle noeat "0-9" enum :string String string * string "\"" idle "\\" string_escape recolor=-1 "%" string_control recolor=-1 :string_escape StringEscape string * string "x" string_hex1 "0-7" string_octal2 "\n" string recolor=-2 :string_hex1 StringEscape string * string noeat "0-9a-fA-F" string_hex2 :string_hex2 StringEscape string * string noeat "0-9a-fA-F" string :string_octal2 StringEscape string * string noeat "0-7" string_octal3 :string_octal3 StringEscape string * string noeat "0-7" string :string_control StringEscape string * string_control "\n" reset "diouxXeEfFgGaAcspn%SC" string :char Character string * char "\n" reset "'" idle "\\" char_escape recolor=-1 :char_escape CharacterEscape string * char "x" char_hex1 "0-7" char_octal2 "\n" char recolor=-2 :char_hex1 CharacterEscape string * char noeat "0-9a-fA-F" char_hex2 :char_hex2 CharacterEscape string * char noeat "0-9a-fA-F" char :char_octal2 CharacterEscape string * char noeat "0-7" char_octal3 :char_octal3 CharacterEscape string * char noeat "0-7" char :ident Ident * idle noeat istrings "accept" kw "access" kw "add" kw "address" kw "advancing" kw "after" kw "all" kw "allowing" kw "alphabet" kw "alphabetic" kw "alphabetic-lower" kw "alphabetic-upper" kw "alphanumeric" kw "alphanumeric-edited" kw "also" kw "alter" kw "alternate" kw "and" oper "any" kw "apply" kw "are" kw "area" kw "areas" kw "arithmetic" kw "ascending" kw "assign" kw "at" kw "author" kw "automatic" kw "b-and" oper "b-exor" oper "b-less" oper "b-not" oper "b-or" oper "basis" kw "before" kw "beginning" kw "binary" kw "bit" kw "bits" kw "blank" kw "block" kw "boolean" kw "bottom" kw "by" kw "call" kw "cancel" kw "cbl" kw "cd" kw "cf" kw "ch" kw "character" kw "characters" kw "class" kw "class-id" kw "clock-units" kw "close" kw "cobol" kw "code" kw "code-set" kw "collating" kw "column" kw "com-reg" kw "comma" kw "commit" kw "common" kw "communication" kw "comp" kw "comp-1" kw "comp-2" kw "comp-3" kw "comp-4" kw "comp-5" kw "comp-6" kw "comp-7" kw "comp-8" kw "comp-9" kw "computational" kw "computational-1" kw "computational-2" kw "computational-3" kw "computational-4" kw "computational-5" kw "computational-6" kw "computational-7" kw "computational-8" kw "computational-9" kw "compute" kw "configuration" kw "connect" kw "contained" kw "contains" kw "content" kw "continue" kw "control" kw "controls" kw "converting" kw "copy" kw "corr" kw "corresponding" kw "count" kw "currency" kw "current" kw "cycle" kw "data" kw "date" kw "date-compiled" kw "date-written" kw "day" kw "day-of-week" kw "db" kw "db-access-control-key" kw "db-data-name" kw "db-exception" kw "db-record-name" kw "db-set-name" kw "db-status" kw "dbcs" kw "de" kw "debug-contents" kw "debug-item" kw "debug-line" kw "debug-name" kw "debug-sub-1" kw "debug-sub-2" kw "debug-sub-3" kw "debugging" kw "decimal-point" kw "declaratives" kw "default" kw "delete" kw "delimited" kw "delimiter" kw "depending" kw "descending" kw "destination" kw "detail" kw "disable" kw "disconnect" kw "display" kw "display-1" kw "display-2" kw "display-3" kw "display-4" kw "display-5" kw "display-6" kw "display-7" kw "display-8" kw "display-9" kw "divide" kw "division" kw "down" kw "duplicate" kw "duplicates" kw "dynamic" kw "egcs" kw "egi" kw "eject" kw "else" cond "emi" kw "empty" kw "enable" kw "end" kw "end-add" kw "end-call" kw "end-compute" kw "end-delete" kw "end-disable" kw "end-divide" kw "end-enable" kw "end-evaluate" kw "end-if" cond "end-invoke" kw "end-multiply" kw "end-of-page" kw "end-perform" kw "end-read" kw "end-receive" kw "end-return" kw "end-rewrite" kw "end-search" kw "end-send" kw "end-start" kw "end-string" kw "end-subtract" kw "end-transceive" kw "end-unstring" kw "end-write" kw "ending" kw "enter" kw "entry" kw "environment" kw "eop" kw "equal" oper "equals" kw "erase" kw "error" kw "esi" kw "evaluate" kw "every" kw "exact" kw "exceeds" kw "exception" kw "exclusive" kw "exit" kw "extend" kw "external" kw "false" bool "fd" kw "fetch" kw "file" kw "file-control" kw "filler" kw "final" kw "find" kw "finish" kw "first" kw "footing" kw "for" kw "form" kw "format" kw "free" kw "from" kw "function" kw "generate" kw "get" kw "giving" kw "global" kw "go" kw "goback" kw "greater" oper "group" kw "heading" kw "high-value" const "high-values" const "i-o" kw "i-o-control" kw "id" kw "identification" kw "if" cond "in" oper "index" kw "index-1" kw "index-2" kw "index-3" kw "index-4" kw "index-5" kw "index-6" kw "index-7" kw "index-8" kw "index-9" kw "indexed" kw "indicate" kw "inherits" kw "initial" kw "initialize" kw "initiate" kw "input" kw "input-output" kw "insert" kw "inspect" kw "installation" kw "into" kw "invalid" kw "invoke" kw "is" oper "just" kw "justified" kw "kanji" kw "keep" kw "key" kw "label" kw "last" kw "ld" kw "leading" kw "left" kw "length" kw "less" oper "limit" kw "limits" kw "linage" kw "linage-counter" kw "line" kw "line-counter" kw "lines" kw "linkage" kw "locally" kw "local-storage" kw "lock" kw "low-value" const "low-values" const "member" kw "memory" kw "merge" kw "message" kw "metaclass" kw "method" kw "method-id" kw "mode" kw "modify" kw "modules" kw "more-labels" kw "move" kw "multiple" kw "multiply" kw "native" kw "negative" kw "next" kw "no" kw "normal" kw "not" oper "null" const "nulls" const "number" kw "numeric" kw "numeric-edited" kw "object" kw "object-computer" kw "occurs" kw "of" kw "off" kw "omitted" kw "on" kw "only" kw "open" kw "optional" kw "or" oper "order" kw "organization" kw "other" kw "output" kw "overflow" kw "override" kw "owner" kw "packed-decimal" kw "padding" kw "page" kw "page-counter" kw "paragraph" kw "password" kw "perform" kw "pf" kw "ph" kw "pic" kw "picture" kw "plus" kw "pointer" kw "position" kw "positive" kw "present" kw "previous" kw "printing" kw "prior" kw "procedure" kw "procedure-pointer" kw "procedures" kw "proceed" kw "processing" kw "program" kw "program-id" kw "protected" kw "purge" kw "queue" kw "quote" const "quotes" const "random" kw "rd" kw "read" kw "ready" kw "realm" kw "receive" kw "reconnect" kw "record" kw "record-name" kw "recording" kw "records" kw "recursive" kw "redefines" kw "reel" kw "reference" kw "references" kw "relation" kw "relative" kw "release" kw "reload" kw "remainder" kw "removal" kw "renames" kw "repeated" kw "replace" kw "replacing" kw "report" kw "reporting" kw "reports" kw "repository" kw "rerun" kw "reserve" kw "reset" kw "retaining" kw "retrieval" kw "return" kw "return-code" kw "returning" kw "reversed" kw "rewind" kw "rewrite" kw "rf" kw "rh" kw "right" kw "rollback" kw "rounded" kw "run" kw "same" kw "sd" kw "search" kw "section" kw "security" kw "segment" kw "segment-limit" kw "select" kw "self" kw "send" kw "sentence" kw "separate" kw "sequence" kw "sequential" kw "service" kw "session-id" kw "set" kw "shared" kw "shift-in" kw "shift-out" kw "sign" kw "size" kw "skip1" kw "skip2" kw "skip3" kw "sort" kw "sort-control" kw "sort-core-size" kw "sort-file-size" kw "sort-merge" kw "sort-message" kw "sort-mode-size" kw "sort-return" kw "source" kw "source-computer" kw "space" const "spaces" const "special-names" kw "standard" kw "standard-1" kw "standard-2" kw "standard-3" kw "standard-4" kw "start" kw "status" kw "stop" kw "store" kw "string" kw "sub-queue-1" kw "sub-queue-2" kw "sub-queue-3" kw "sub-schema" kw "subtract" kw "sum" kw "super" kw "suppress" kw "symbolic" kw "sync" kw "synchronized" kw "table" kw "tally" kw "tallying" kw "tape" kw "tenant" kw "terminal" kw "terminate" kw "test" kw "text" kw "than" oper "then" kw "through" kw "thru" loop "time" kw "timeout" kw "times" loop "title" kw "to" oper "top" kw "trace" kw "trailing" kw "transceive" kw "true" bool "type" kw "unequal" kw "unit" kw "unstring" kw "until" loop "up" kw "update" kw "upon" kw "usage" kw "usage-mode" kw "use" kw "using" kw "valid" kw "validate" kw "value" kw "values" kw "varying" loop "wait" kw "when" kw "when-compiled" kw "with" kw "within" kw "words" kw "working-storage" kw "write" kw "write-only" kw "zero" const "zeroes" const "zeros" const done "a-zA-Z0-9_\-" ident :kw Keyword * idle noeat :oper Operator * idle noeat :loop Loop * idle noeat :cond Conditional * idle noeat :const Constant * idle noeat :bool Boolean * idle noeat