File: highlight.g4.html

package info (click to toggle)
kf6-syntax-highlighting 6.13.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 47,568 kB
  • sloc: xml: 197,750; cpp: 12,850; python: 3,023; sh: 955; perl: 546; ruby: 488; pascal: 393; javascript: 161; php: 150; jsp: 132; lisp: 131; haskell: 124; ada: 119; ansic: 107; makefile: 96; f90: 94; ml: 85; cobol: 81; yacc: 71; csh: 62; erlang: 54; sql: 51; java: 47; objc: 37; awk: 31; asm: 30; tcl: 29; fortran: 18; cs: 10
file content (155 lines) | stat: -rw-r--r-- 7,272 bytes parent folder | download
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
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>highlight.g4</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (ANTLR) - Theme (Breeze Light)"/>
</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
<span style="color:#898887">/* This test file tests Kate's ANTLR highlighting </span>
<span style="color:#898887">   compilable bt ANTLR although not directly:</span>
<span style="color:#898887">   grammar can be alone file for both parser and lexer</span>
<span style="color:#898887">   or two files</span>
<span style="color:#898887">   This file is merged TestParser.g4 and TestLexer.g4</span>
<span style="color:#898887">   this lines also tests regions of multiline comment</span>
<span style="color:#898887">*/</span>
<span style="color:#898887">//file TestParser.g4</span>
<span style="font-weight:bold">parser</span> <span style="font-weight:bold">grammar</span> TestParser<span style="color:#ca60ca">;</span>

<span style="color:#0057ae">options</span> <span style="color:#ca60ca">{</span> tokenVocab <span style="color:#ca60ca">=</span> TestLexer<span style="color:#ca60ca">;</span> <span style="color:#ca60ca">}</span>

<span style="color:#898887">// The main entry point for parsing a grammar.</span>

startRule
     <span style="color:#ca60ca">:</span>  <span style="color:#ca60ca">(</span>expression <span style="color:#ca60ca">|</span> STRING<span style="color:#ca60ca">)+</span> EOF
     <span style="color:#ca60ca">;</span>

expression
     <span style="color:#ca60ca">:</span>  expression PLUS mulExpr
     <span style="color:#ca60ca">|</span>  expression MINUS mulExpr
     <span style="color:#ca60ca">|</span>  mulExpr
     <span style="color:#ca60ca">;</span>

mulExpr
    <span style="color:#ca60ca">:</span>  mulExpr MUL unaryExpr
    <span style="color:#ca60ca">|</span>  mulExpr DIV unaryExpr
    <span style="color:#ca60ca">|</span>  unaryExpr
    <span style="color:#ca60ca">;</span>

unaryExpr
    <span style="color:#ca60ca">:</span> atom
    <span style="color:#ca60ca">|</span> LPAR expression RPAR
    <span style="color:#ca60ca">;</span>

atom
    <span style="color:#ca60ca">:</span> IDENT
    <span style="color:#ca60ca">|</span> number
    <span style="color:#ca60ca">;</span>

number
    <span style="color:#ca60ca">:</span> INT
    <span style="color:#ca60ca">|</span> FLOAT
    <span style="color:#ca60ca">;</span>

<span style="color:#898887">//================================</span>
<span style="color:#898887">//file TestLexer.g4</span>

<span style="font-weight:bold">lexer</span> <span style="font-weight:bold">grammar</span> TestLexer<span style="color:#ca60ca">;</span>

<span style="color:#898887">/*'channels' and '{' must be in one line</span>
<span style="color:#898887"> to correct highlighting, highlighter can't</span>
<span style="color:#898887"> recognize regular expression "(options|tokens|channels)(?=([\s]*{))"</span>
<span style="color:#898887"> where apart from \s whitrspaces are end of lines</span>
<span style="color:#898887"> */</span>
<span style="color:#0057ae">channels</span> <span style="color:#ca60ca">{</span> OFF_CHANNEL <span style="color:#ca60ca">,</span> COMMENT <span style="color:#ca60ca">}</span>


PLUS
    <span style="color:#ca60ca">:</span> <span style="color:#bf0303">'+'</span>
    <span style="color:#ca60ca">;</span>

MINUS
    <span style="color:#ca60ca">:</span> <span style="color:#bf0303">'-'</span>
    <span style="color:#ca60ca">;</span>

MUL
    <span style="color:#ca60ca">:</span> <span style="color:#bf0303">'*'</span>
    <span style="color:#ca60ca">;</span>

DIV
    <span style="color:#ca60ca">:</span> <span style="color:#bf0303">'/'</span>
    <span style="color:#ca60ca">;</span>

LPAR
    <span style="color:#ca60ca">:</span> <span style="color:#bf0303">'('</span>
    <span style="color:#ca60ca">;</span>

RPAR
    <span style="color:#ca60ca">:</span> <span style="color:#bf0303">')'</span>
    <span style="color:#ca60ca">;</span>

IDENT
    <span style="color:#ca60ca">:</span>   Nondigit
        <span style="color:#ca60ca">(</span>   Nondigit
        <span style="color:#ca60ca">|</span>   Digit
        <span style="color:#ca60ca">)*</span>
    <span style="color:#ca60ca">;</span>

<span style="font-weight:bold">fragment</span>
Digit
    <span style="color:#ca60ca">:</span>   <span style="color:#924c9d">[0-9]</span>
    <span style="color:#ca60ca">;</span>

<span style="font-weight:bold">fragment</span>
NonzeroDigit
    <span style="color:#ca60ca">:</span>   <span style="color:#924c9d">[1-9]</span>
    <span style="color:#ca60ca">;</span>

<span style="font-weight:bold">fragment</span>
Nondigit
    <span style="color:#ca60ca">:</span>   <span style="color:#924c9d">[a-zA-Z_]</span>
    <span style="color:#ca60ca">;</span>

Sign
    <span style="color:#ca60ca">:</span>   <span style="color:#bf0303">'+'</span> <span style="color:#ca60ca">|</span> <span style="color:#bf0303">'-'</span>
    <span style="color:#ca60ca">;</span>

INT
    <span style="color:#ca60ca">:</span>  Sign<span style="color:#ca60ca">?</span> <span style="color:#ca60ca">(</span>NonzeroDigit Digit<span style="color:#ca60ca">*</span> <span style="color:#ca60ca">|</span> <span style="color:#bf0303">'0'</span><span style="color:#ca60ca">)</span>
    <span style="color:#ca60ca">;</span>

<span style="font-weight:bold">fragment</span>
DigitSequence
    <span style="color:#ca60ca">:</span>   Digit<span style="color:#ca60ca">+</span>
    <span style="color:#ca60ca">;</span>

<span style="font-weight:bold">fragment</span>
ExponentPart
    <span style="color:#ca60ca">:</span>   <span style="color:#924c9d">[eE]</span> Sign<span style="color:#ca60ca">?</span> DigitSequence
    <span style="color:#ca60ca">;</span>

<span style="font-weight:bold">fragment</span>
FractionalConstant
    <span style="color:#ca60ca">:</span>   DigitSequence<span style="color:#ca60ca">?</span> <span style="color:#bf0303">'.'</span> DigitSequence
    <span style="color:#ca60ca">|</span>   DigitSequence <span style="color:#bf0303">'.'</span>
    <span style="color:#ca60ca">;</span>

FLOAT
    <span style="color:#ca60ca">:</span>   <span style="color:#ca60ca">(</span>FractionalConstant ExponentPart<span style="color:#ca60ca">?</span> <span style="color:#ca60ca">|</span> DigitSequence ExponentPart<span style="color:#ca60ca">)</span>
    <span style="color:#ca60ca">;</span>


<span style="font-weight:bold">fragment</span>
EscapeSequence
    <span style="color:#ca60ca">:</span>   <span style="color:#bf0303">'\\'</span> <span style="color:#924c9d">['"?abfnrtvhe\\]</span>
    <span style="color:#ca60ca">;</span>

<span style="color:#898887">//between [] is charset , test escape \</span>
<span style="color:#898887">fragment</span>
SChar
    <span style="color:#ca60ca">:</span>   <span style="color:#ca60ca">~</span><span style="color:#924c9d">["\\\r\n]</span>
    <span style="color:#ca60ca">|</span>   EscapeSequence
    <span style="color:#ca60ca">;</span>

STRING
    <span style="color:#ca60ca">:</span>   <span style="color:#bf0303">'"'</span> SChar<span style="color:#ca60ca">*</span> <span style="color:#bf0303">'"'</span>
    <span style="color:#ca60ca">;</span>
</pre></body></html>