# JOE syntax highlight file for VHDL # Define colors =Idle =Ident =Comment =Constant =Number +Constant =String +Constant =Character +String =Escape =StringEscape +Escape +String =CharacterEscape +StringEscape =Keyword =Operator +Keyword # All following states are for when we're not in a preprocessor line :idle Idle * idle "-" maybe_comment "'" char recolor=-1 "\"" string recolor=-1 "0-9" first_digit recolor=-1 "." maybe_float "\"" string recolor=-1 "Bb" maybe_binary buffer "Oo" maybe_octal buffer "Xx" maybe_hex buffer "ac-np-wyzAC-NP-WYZ" ident buffer :maybe_comment Idle * idle noeat "-" comment recolor=-2 :comment Comment * comment "BFHNTX" comment noeat call=comment_todo.comment_todo() "\n" idle # Character constant :char Character * char "'" idle # Strings :maybe_binary Idle * ident noeat "\"" string recolor=-2 :maybe_octal Idle * ident noeat "\"" string recolor=-2 :maybe_hex Idle * ident noeat "\"" string recolor=-2 :string String string * string "\n" idle "\"" idle "\\" string_escape recolor=-1 :string_escape StringEscape string * string "\n" string recolor=-2 # Integer constants :first_digit Number * idle noeat "." float "_" first_digit "0-9" first_digit # Floating point :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 # Identifiers :ident Ident * quote noeat istrings "abs" operator "access" kw "after" kw "alias" kw "all" kw "and" operator "architecture" kw "array" kw "assert" kw "attribute" kw "begin" kw "block" kw "body" kw "buffer" kw "bus" kw "case" kw "component" kw "configuration" kw "constant" kw "disconnect" kw "downto" kw "else" kw "elsif" kw "end" kw "entity" kw "exit" kw "file" kw "for" kw "function" kw "generate" kw "generic" kw "group" kw "guarded" kw "if" kw "impure" kw "in" kw "inertial" kw "inout" kw "is" kw "label" kw "library" kw "linkage" kw "literal" kw "loop" kw "map" kw "mod" operator "nand" operator "new" kw "next" kw "nor" operator "not" operator "null" kw "of" kw "on" kw "open" kw "or" operator "others" kw "out" kw "package" kw "port" kw "postponed" kw "procedure" kw "process" kw "process" kw "pure" kw "range" kw "record" kw "register" kw "reject" kw "rem" operator "report" kw "return" kw "rol" operator "ror" operator "select" kw "severity" kw "shared" kw "signal" kw "sla" operator "sll" operator "sra" operator "srl" operator "subtype" kw "then" kw "to" kw "transport" kw "type" kw "unaffected" kw "units" kw "until" kw "use" kw "variable" kw "wait" kw "when" kw "while" kw "with" kw "xnor" operator "xor" operator done "a-zA-Z0-9_" ident :operator Operator * idle noeat :kw Keyword * idle noeat # identifiers separated with quote ' :quote Idle * idle noeat "'" quote_word :quote_word Idle * idle noeat "a-zA-Z" ident buffer