]> luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/inform7.js
Initial commit.
[flow-web.git] / static / highlight / languages / inform7.js
1 /*! `inform7` grammar compiled for Highlight.js 11.11.1 */
2 (function(){
3 var hljsGrammar = (function () {
4 'use strict';
5
6 /*
7 Language: Inform 7
8 Author: Bruno Dias <bruno.r.dias@gmail.com>
9 Description: Language definition for Inform 7, a DSL for writing parser interactive fiction.
10 Website: http://inform7.com
11 Category: gaming
12 */
13
14 function inform7(hljs) {
15 const START_BRACKET = '\\[';
16 const END_BRACKET = '\\]';
17 return {
18 name: 'Inform 7',
19 aliases: [ 'i7' ],
20 case_insensitive: true,
21 keywords: {
22 // Some keywords more or less unique to I7, for relevance.
23 keyword:
24 // kind:
25 'thing room person man woman animal container '
26 + 'supporter backdrop door '
27 // characteristic:
28 + 'scenery open closed locked inside gender '
29 // verb:
30 + 'is are say understand '
31 // misc keyword:
32 + 'kind of rule' },
33 contains: [
34 {
35 className: 'string',
36 begin: '"',
37 end: '"',
38 relevance: 0,
39 contains: [
40 {
41 className: 'subst',
42 begin: START_BRACKET,
43 end: END_BRACKET
44 }
45 ]
46 },
47 {
48 className: 'section',
49 begin: /^(Volume|Book|Part|Chapter|Section|Table)\b/,
50 end: '$'
51 },
52 {
53 // Rule definition
54 // This is here for relevance.
55 begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,
56 end: ':',
57 contains: [
58 {
59 // Rule name
60 begin: '\\(This',
61 end: '\\)'
62 }
63 ]
64 },
65 {
66 className: 'comment',
67 begin: START_BRACKET,
68 end: END_BRACKET,
69 contains: [ 'self' ]
70 }
71 ]
72 };
73 }
74
75 return inform7;
76
77 })();
78
79 hljs.registerLanguage('inform7', hljsGrammar);
80 })();