aboutsummaryrefslogtreecommitdiff
path: root/plugin/syntaxes/cie-pseudocode.tmLanguage.json
blob: cdf175ab3d0de6c328fa17d5b1390db4a0ba25e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219

{
  "name": "CIE Pseudocode",
  "scopeName": "source.cie-pseudocode",
  "patterns": [
    {
      "include": "#line_comment"
    },
    {
      "include": "#strings"
    },
    {
      "match": "^\\s*(#)(LIB)\\s*$",
      "captures": {
        "1": {
          "name": "punctuation.definition.directive.cpp"
        },
        "2": {
          "name": "keyword.control.directive.pragma.cpp"
        }
      }
    },
    {
      "match": "(?<!\\w)(?:CASE|ENDCASE)(?!\\w)",
      "name": "keyword.control.switch.cpp"
    },
    {
      "match": "(?<!\\w)(?:OTHERWISE)(?!\\w)",
      "name": "keyword.control.default.cpp"
    },
    {
      "match": "(?<!\\w)(?:CONSTANT)(?!\\w)",
      "name": "storage.modifier.const.cpp"
    },
    {
      "match": "(?<!\\w)(?:CLASS|ENDCLASS)(?!\\w)",
      "name": "storage.type.class.cpp"
    },
    {
      "match": "(?<!\\w)(?:PUBLIC)(?!\\w)",
      "name": "storage.type.modifier.access.control.public.cpp"
    },
    {
      "match": "(?<!\\w)(?:PRIVATE)(?!\\w)",
      "name": "storage.type.modifier.access.control.private.cpp"
    },
    {
      "match": "(?<!\\w)(?:TEMPLATE)(?!\\w)",
      "name": "storage.type.template.cpp"
    },
    {
      "match": "(?<!\\w)(?:OPERATOR)(?!\\w)",
      "name": "keyword.other.operator.overload.cpp"
    },
    {
      "match": "(?<!\\w)(?:OVERLOAD)(?!\\w)",
      "name": "storage.modifier.cpp"
    },
    {
      "match": "(?<!\\w)(?:EXTERN)(?!\\w)",
      "name": "storage.modifier.specifier.extern.cpp"
    },
    {
      "match": "(?<!\\w)(?:EXTERN_FUNCTION|EXTERN_PROCEDURE)(?!\\w)",
      "name": "storage.modifier.cpp"
    },
    {
      "match": "(?<!\\w)(?:INCLUDE_OBJ)(?!\\w)",
      "name": "keyword.control.directive.include.cpp"
    },
    {
      "match": "\\.\\.\\.",
      "name": "punctuation.vararg-ellipses.cpp"
    },
    {
      "match": "(?<!\\w)(?:TRY|ENDTRY)(?!\\w)",
      "name": "keyword.control.try.cpp"
    },
    {
      "match": "(?<!\\w)CATCH(?!\\w)",
      "name": "keyword.control.catch.cpp"
    },
    {
      "match": "(?<!\\w)THROW(?!\\w)",
      "name": "keyword.control.throw.cpp"
    },
    {
      "match": "(?<!\\w)(?:IF|THEN|ELSE|ENDIF|WHILE|DO|ENDWHILE|REPEAT|UNTIL|FOR|TO|STEP|NEXT|RETURN|CALL|NEW|DELETE)(?!\\w)",
      "name": "keyword.control.cie-pseudocode"
    },
    {
      "match": "(?<!\\w)(?:INCLUDE|GLOBAL|ENDGLOBAL|DECLARE|TYPE|ENDTYPE|FUNCTION|ENDFUNCTION|PROCEDURE|ENDPROCEDURE|RETURNS|BYREF|BYVAL|OF)(?!\\w)",
      "name": "storage.modifier.cie-pseudocode"
    },
    {
      "match": "(?<!\\w)(?:INTEGER|REAL|BOOLEAN|STRING|CHAR|ARRAY|C_INT|C_CHAR|C_STRING|C_DOUBLE|C_TYPE)(?!\\w)",
      "name": "storage.type.cie-pseudocode"
    },
    {
      "match": "(?<!\\w)(?:TRUE|FALSE)(?!\\w)",
      "name": "constant.language.cie-pseudocode"
    },
    {
      "match": "(?<!\\w)(?:INPUT|OUTPUT|OPENFILE|READFILE|WRITEFILE|CLOSEFILE|READ|WRITE|APPEND)(?!\\w)",
      "name": "keyword.other.cie-pseudocode"
    },
    {
      "match": "(?<!\\w)(?:LENGTH|MID|RIGHT|LEFT|LCASE|UCASE|ASC|CHR|IS_NUM|NUM_TO_STR|STR_TO_NUM|EOF)(?!\\w)(?=\\s*\\()",
      "name": "entity.name.function.cie-pseudocode"
    },
    {
      "match": "(?<!\\w)(?:DIV|MOD|AND|OR|NOT)(?!\\w)",
      "name": "keyword.operator.word.cie-pseudocode"
    },
    {
      "match": "<-",
      "name": "keyword.operator.assignment.cpp"
    },
    {
      "match": "<>|<=|>=|[+*/=&^<>-]",
      "name": "keyword.operator.cie-pseudocode"
    },
    {
      "match": "(?<!\\w)\\d+(?:\\.\\d*)?(?!\\w)",
      "name": "constant.numeric.cie-pseudocode"
    },
    {
      "match": "\\b[A-Za-z][A-Za-z0-9_]*(?=\\s*\\()",
      "name": "entity.name.function.cie-pseudocode"
    },
    {
      "match": "[()]",
      "name": "punctuation.section.parens.cie-pseudocode"
    },
    {
      "match": "[\\[\\]]",
      "name": "punctuation.section.brackets.cie-pseudocode"
    },
    {
      "match": ",",
      "name": "punctuation.separator.delimiter.comma.cie-pseudocode"
    },
    {
      "match": "[:.]",
      "name": "punctuation.separator.cie-pseudocode"
    }
  ],
  "repository": {
    "line_comment": {
      "begin": "(//)",
      "end": "$",
      "beginCaptures": {
        "1": {
          "name": "punctuation.definition.comment.cie-pseudocode"
        }
      },
      "endCaptures": {},
      "name": "comment.line.double-slash.cie-pseudocode",
      "patterns": []
    },
    "strings": {
      "patterns": [
        {
          "begin": "\"",
          "end": "(\")(C)?|$",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin.cie-pseudocode"
            }
          },
          "endCaptures": {
            "1": {
              "name": "punctuation.definition.string.end.cie-pseudocode"
            },
            "2": {
              "name": "keyword.other.suffix.literal.user-defined.string.cpp"
            }
          },
          "name": "string.quoted.double.cie-pseudocode",
          "patterns": [
            {
              "include": "#escapes"
            }
          ]
        },
        {
          "begin": "'",
          "end": "(')|$",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin.cie-pseudocode"
            }
          },
          "endCaptures": {
            "1": {
              "name": "punctuation.definition.string.end.cie-pseudocode"
            }
          },
          "name": "string.quoted.single.cie-pseudocode",
          "patterns": [
            {
              "include": "#escapes"
            }
          ]
        }
      ]
    },
    "escapes": {
      "patterns": [
        {
          "match": "\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[0-9A-Fa-f]+|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
          "name": "constant.character.escape"
        },
        {
          "match": "\\\\[^\\r\\n]"
        }
      ]
    }
  }
}