aboutsummaryrefslogtreecommitdiffstats
path: root/language-web/src/main/webapp/xtext-resources/generated/mode-problem.js
blob: 92adcff143dd0d4c59c083e39f4b3aa358d9d85f (plain) (blame)
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
define(["codemirror", "codemirror/addon/mode/simple"], function(CodeMirror, SimpleMode) {
	var keywords = "abstract|class|contains|enum|error|extends|false|opposite|pred|problem|refers|scope|true|unknown";
	CodeMirror.defineSimpleMode("xtext/problem", {
		start: [
			{token: "comment", regex: "\\/\\*", next : "comment"},
			{token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},
			{token: "quoted-name", regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},
			{token: "number", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},
			{token: "number", regex: "[*]"},
			{token: "comment", regex: "%.*$"},
			{token: "comment", regex: "\\/\\/.*$"},
			{token: "lparen", indent: true, regex: "[[({]"},
			{token: "rparen", dedent: true, dedentIfLineStart: true, regex: "[\\])}]"},
			{indent: true, push: "predicateBody", regex: ":-"},
			{token: "keyword", regex: "\\b(?:" + keywords + ")\\b"}
		],
		comment: [
			{token: "comment", regex: ".*?\\*\\/", next : "start"},
			{token: "comment", regex: ".+"}
		],
		meta: {
			dontIndentStates: ["comment"],
			lineComment: "%",
			electricChars: "])];"
		},
		predicateBody: [
			{token: "comment", regex: "\\/\\*", next : "comment"},
			{token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},
			{token: "quoted-name", regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},
			{token: "number", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},
			{token: "number", regex: "[*]"},
			{token: "comment", regex: "%.*$"},
			{token: "comment", regex: "\\/\\/.*$"},
			{token: "lparen", indent: true, regex: "[[({]"},
			{token: "rparen", dedent: true, dedentIfLineStart: true, regex: "[\\])}]"},
			{dedent: true, dedentIfLineStart: false, pop: true, regex: "\\.\\s*$"},
			{indent: true, dedent: true, regex: "[;]"},
			{token: "keyword", regex: "\\b(?:" + keywords + ")\\b"}
		]
	});
});