File: highlight.y.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 (102 lines) | stat: -rw-r--r-- 9,442 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
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>highlight.y</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Yacc/Bison) - Theme (Breeze Light)"/>
</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
<span style="color:#898887">/* Yacc / Bison hl test file.</span>
<span style="color:#898887"> * It won't compile :-) Sure !</span>
<span style="color:#898887"> */</span>

<span style="color:#b08000;font-weight:bold">%{</span>

<span style="color:#006e28">#include </span><span style="color:#ff5500">&lt;iostream></span>
<span style="font-weight:bold">using</span> <span style="font-weight:bold">namespace</span> std<span style="color:#ca60ca">;</span>

<span style="color:#0057ae">extern</span> KateParser <span style="color:#ca60ca">*</span>parser<span style="color:#ca60ca">;</span>

<span style="color:#b08000;font-weight:bold">%}</span>

<span style="font-weight:bold">%locations</span>

<span style="font-weight:bold">%union</span> { 
   <span style="color:#0057ae">int</span> int_val<span style="color:#ca60ca">;</span>
   <span style="color:#0057ae">double</span> double_val<span style="color:#ca60ca">;</span>
   <span style="color:#0057ae">bool</span> bool_val<span style="color:#ca60ca">;</span>
   <span style="color:#0057ae">char</span> <span style="color:#ca60ca">*</span>string_val<span style="color:#ca60ca">;</span>
   <span style="color:#0057ae">char</span> <span style="color:#ca60ca">*</span>ident_val<span style="color:#ca60ca">;</span>
   <span style="font-weight:bold">struct</span> var <span style="color:#ca60ca">*</span>v<span style="color:#ca60ca">;</span>
   <span style="color:#0057ae">void</span> <span style="color:#ca60ca">*</span>ptr<span style="color:#ca60ca">;</span>
}

<span style="font-weight:bold">%token</span> <span style="color:#0057ae">&lt;int_val></span>      TOK_NOT_EQUAL  <span style="color:#bf0303">"!="</span>
<span style="font-weight:bold">%token</span> <span style="color:#0057ae">&lt;int_val></span>      TOK_LESSER_E   <span style="color:#bf0303">"&lt;="</span>
<span style="font-weight:bold">%token</span> <span style="color:#0057ae">&lt;int_val></span>      TOK_GREATER_E  <span style="color:#bf0303">">="</span>
<span style="font-weight:bold">%token</span> <span style="color:#0057ae">&lt;int_val></span>      TOK_EQUAL_2    <span style="color:#bf0303">"=="</span> <span style="color:#898887">//comment</span>
<span style="font-weight:bold">%token</span>
   PERCENT_DEBUG           <span style="color:#bf0303">"%debug"</span>
   PERCENT_DEFAULT_PREC    <span style="color:#bf0303">"%default-prec"</span>
   PERCENT_DEFINE          <span style="color:#bf0303">"%define"</span>
;

<span style="font-weight:bold">%type</span> <span style="color:#0057ae">&lt;int_val></span>       type type_proc

<span style="font-weight:bold">%code</span> top {
  <span style="color:#006e28">#define </span><span style="color:#006e28">_GNU_SOURCE</span>
  <span style="color:#006e28">#include </span><span style="color:#ff5500">&lt;stdio.h></span>
  <span style="color:#0057ae">int</span> val<span style="color:#ca60ca">;</span>
}

<span style="font-weight:bold">%destructor</span> { free <span style="color:#ca60ca">(</span><span style="font-weight:bold">$$</span><span style="color:#ca60ca">)</span><span style="color:#ca60ca">;</span> printf <span style="color:#ca60ca">(</span><span style="color:#bf0303">"</span><span style="color:#3daee9">%d</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="font-weight:bold">@$</span><span style="color:#ca60ca">.</span>first_line<span style="color:#ca60ca">)</span><span style="color:#ca60ca">;</span> } <span style="color:#0057ae">&lt;*></span>
<span style="font-weight:bold">%lex-param</span>   {scanner_mode <span style="color:#ca60ca">*</span>mode};
<span style="font-weight:bold">%parse-param</span> {<span style="color:#0057ae">int</span> <span style="color:#ca60ca">*</span>nastiness} {<span style="color:#0057ae">int</span> <span style="color:#ca60ca">*</span>randomness}
<span style="font-weight:bold">%initial-action</span> {
  <span style="font-weight:bold">@$</span><span style="color:#ca60ca">.</span>initialize <span style="color:#ca60ca">(</span>file_name<span style="color:#ca60ca">)</span><span style="color:#ca60ca">;</span>
};

<span style="color:#b08000;font-weight:bold">%%</span>

<span style="color:#bf0303">prog</span>:                 KW_PROGRAM ident { parser<span style="color:#ca60ca">-></span>start<span style="color:#ca60ca">(</span><span style="font-weight:bold">$2</span><span style="color:#ca60ca">)</span><span style="color:#ca60ca">;</span> } prog_beg_glob_decl instructions { parser<span style="color:#ca60ca">-></span>endproc<span style="color:#ca60ca">(</span><span style="color:#b08000">0</span><span style="color:#ca60ca">)</span><span style="color:#ca60ca">;</span> } dev_procedures KW_ENDP ;

<span style="color:#bf0303">number</span>:               integer_number
                      | TOK_DOUBLE
                      {
                         <span style="font-weight:bold">$$</span> <span style="color:#ca60ca">=</span> <span style="font-weight:bold">new</span> var<span style="color:#ca60ca">;</span>
                         <span style="font-weight:bold">$$</span><span style="color:#ca60ca">-></span>type <span style="color:#ca60ca">=</span> KW_REEL<span style="color:#ca60ca">;</span>
                         <span style="font-weight:bold">$$</span><span style="color:#ca60ca">-></span>cl <span style="color:#ca60ca">=</span> var<span style="color:#ca60ca">::</span>LITTERAL<span style="color:#ca60ca">;</span>
                         <span style="font-weight:bold">$$</span><span style="color:#ca60ca">-></span>real <span style="color:#ca60ca">=</span> <span style="font-weight:bold">$</span><span style="color:#0057ae">&lt;int_val></span><span style="font-weight:bold">1</span><span style="color:#ca60ca">;</span>
                      };
<span style="color:#bf0303">words</span>:
                      <span style="font-weight:bold">%empty</span>
                      | words word
                      ;

<span style="font-weight:bold">%type</span> <span style="color:#0057ae">&lt;type></span> word;
<span style="font-weight:bold">%printer</span> { fprintf <span style="color:#ca60ca">(</span>yyo<span style="color:#ca60ca">,</span> <span style="color:#bf0303">"</span><span style="color:#3daee9">%s</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> word_string <span style="color:#ca60ca">(</span><span style="font-weight:bold">$$</span><span style="color:#ca60ca">))</span><span style="color:#ca60ca">;</span> } <span style="color:#0057ae">&lt;type></span>;
<span style="color:#bf0303">word</span>:
                      <span style="font-weight:bold">%?</span>{ boom<span style="color:#ca60ca">(</span><span style="color:#b08000">1</span><span style="color:#ca60ca">)</span><span style="color:#ca60ca">;</span> }
                      | <span style="color:#bf0303">"hello"</span>  { <span style="font-weight:bold">$$</span> <span style="color:#ca60ca">=</span> hello<span style="color:#ca60ca">;</span> }
                      | <span style="color:#bf0303">"bye"</span>  { <span style="font-weight:bold">$$</span> <span style="color:#ca60ca">=</span> bye<span style="color:#ca60ca">;</span> }
                      ;

<span style="color:#bf0303">foo</span>:                  { <span style="font-weight:bold">$$</span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">0</span> }
                      | number { <span style="font-weight:bold">$$</span> <span style="color:#ca60ca">=</span> <span style="font-weight:bold">$1</span> <span style="color:#ca60ca">|</span> <span style="font-weight:bold">$2</span><span style="color:#ca60ca">;</span> }
                      | hello { <span style="font-weight:bold">$$</span> <span style="color:#ca60ca">=</span> <span style="font-weight:bold">$1</span> <span style="color:#ca60ca">|</span> <span style="font-weight:bold">$3</span><span style="color:#ca60ca">;</span> } <span style="color:#898887">// without a comma</span>

<span style="color:#bf0303;font-weight:bold">h</span><span style="color:#bf0303">ello</span>:
                      gram1 { <span style="font-weight:bold">$$</span> <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"hi"</span> };
                      | gram2
                      ;;
                      
<span style="color:#b08000;font-weight:bold">%%</span>

<span style="color:#006e28">#include </span><span style="color:#ff5500">&lt;stdio.h></span>

<span style="color:#0057ae">int</span> main<span style="color:#ca60ca">(</span><span style="color:#0057ae">void</span><span style="color:#ca60ca">)</span>
<span style="color:#ca60ca">{</span>
  puts<span style="color:#ca60ca">(</span><span style="color:#bf0303">"Hello, World!"</span><span style="color:#ca60ca">)</span><span style="color:#ca60ca">;</span>
  <span style="font-weight:bold">return</span> <span style="color:#b08000">0</span><span style="color:#ca60ca">;</span>
<span style="color:#ca60ca">}</span>

<span style="color:#898887">// </span><span style="color:#e85848;background-color:#451e1a;font-weight:bold">ALERT</span><span style="color:#898887"> </span><span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold">NOTE</span>
</pre></body></html>