diff options
| author | xolatile | 2025-04-20 15:13:58 +0200 |
|---|---|---|
| committer | xolatile | 2025-04-20 15:13:58 +0200 |
| commit | b2bbfd7be69c1de91a06d922a9f7e09b45e59c1e (patch) | |
| tree | d0b0e5bb6e3eec2e6a8538d4394f1af09edaf2cf /xanguage/pascal.h | |
| download | xolatile-xarbon-master.tar.xz xolatile-xarbon-master.tar.zst | |
Diffstat (limited to 'xanguage/pascal.h')
| -rwxr-xr-x | xanguage/pascal.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/xanguage/pascal.h b/xanguage/pascal.h new file mode 100755 index 0000000..16cec4b --- /dev/null +++ b/xanguage/pascal.h @@ -0,0 +1,28 @@ +static procedure language_highlight_pascal (language_structure * language, syntax_structure * syntax) { + character * separators = ".,:;<=>+-*/&@#$%^()[] \t\r\n"; + + character * keywords [] = { + "absolute", "and", "array", "asm", "begin", "case", "const", "constructor", + "destructor", "div", "do", "downto", "else", "end", "file", "for", + "function", "goto", "if", "in", "inherited", "inline", "interface", "xor", + "label", "mod", "nil", "not", "object", "of", "operator", "or", + "packed", "procedure", "program", "record", "reintroduce", "repeat", "self", "set", + "shl", "shr", "string", "then", "to", "type", "unit", "until", + "uses", "var", "while", "with" + }; + + syntax_define (syntax, false, false, "//", "\n", '\0', language->comment_colour, language->comment_effect); + syntax_define (syntax, false, false, "(*", "*)", '\0', language->comment_colour, language->comment_effect); + syntax_define (syntax, false, false, "{", "}", '\0', language->comment_colour, language->comment_effect); + syntax_define (syntax, false, false, "'", "'", '#', language->string_colour, language->string_effect); + + for (natural_64 word = 0; word < array_length (keywords); ++word) { + syntax_define (syntax, false, true, keywords [word], separators, '\0', language->keyword_colour, language->keyword_effect); + } + + syntax_define (syntax, true, false, "[]()", "", '\0', language->bracket_colour, language->bracket_effect); + syntax_define (syntax, true, false, ".,:;<=>+-*/&@#$%^", "", '\0', language->operator_colour, language->operator_effect); + + syntax_define (syntax, true, true, language_digits, separators, '\0', language->number_colour, language->number_effect); + syntax_define (syntax, true, true, language_letters, separators, '\0', language->lowercase_colour, language->lowercase_effect); +} |
