Warning, file /frameworks/syntax-highlighting/autotests/html/highlight.y.html was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>highlight.y</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Yacc/Bison) - Theme (Breeze Light)"/> 0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre> 0007 <span style="color:#898887;">/* Yacc / Bison hl test file.</span> 0008 <span style="color:#898887;"> * It won't compile :-) Sure !</span> 0009 <span style="color:#898887;"> */</span> 0010 0011 <span style="color:#b08000;font-weight:bold;">%{</span> 0012 0013 <span style="color:#006e28;">#include </span><span style="color:#ff5500;"><iostream></span> 0014 <span style="font-weight:bold;">using</span> <span style="font-weight:bold;">namespace</span> std<span style="color:#ca60ca;">;</span> 0015 0016 <span style="color:#0057ae;">extern</span> KateParser <span style="color:#ca60ca;">*</span>parser<span style="color:#ca60ca;">;</span> 0017 0018 <span style="color:#b08000;font-weight:bold;">%}</span> 0019 0020 <span style="font-weight:bold;">%locations</span> 0021 0022 <span style="font-weight:bold;">%union</span> { 0023 <span style="color:#0057ae;">int</span> int_val<span style="color:#ca60ca;">;</span> 0024 <span style="color:#0057ae;">double</span> double_val<span style="color:#ca60ca;">;</span> 0025 <span style="color:#0057ae;">bool</span> bool_val<span style="color:#ca60ca;">;</span> 0026 <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">*</span>string_val<span style="color:#ca60ca;">;</span> 0027 <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">*</span>ident_val<span style="color:#ca60ca;">;</span> 0028 <span style="font-weight:bold;">struct</span> var <span style="color:#ca60ca;">*</span>v<span style="color:#ca60ca;">;</span> 0029 <span style="color:#0057ae;">void</span> <span style="color:#ca60ca;">*</span>ptr<span style="color:#ca60ca;">;</span> 0030 } 0031 0032 <span style="font-weight:bold;">%token</span> <span style="color:#0057ae;"><int_val></span> TOK_NOT_EQUAL <span style="color:#bf0303;">"!="</span> 0033 <span style="font-weight:bold;">%token</span> <span style="color:#0057ae;"><int_val></span> TOK_LESSER_E <span style="color:#bf0303;">"<="</span> 0034 <span style="font-weight:bold;">%token</span> <span style="color:#0057ae;"><int_val></span> TOK_GREATER_E <span style="color:#bf0303;">">="</span> 0035 <span style="font-weight:bold;">%token</span> <span style="color:#0057ae;"><int_val></span> TOK_EQUAL_2 <span style="color:#bf0303;">"=="</span> <span style="color:#898887;">//comment</span> 0036 <span style="font-weight:bold;">%token</span> 0037 PERCENT_DEBUG <span style="color:#bf0303;">"%debug"</span> 0038 PERCENT_DEFAULT_PREC <span style="color:#bf0303;">"%default-prec"</span> 0039 PERCENT_DEFINE <span style="color:#bf0303;">"%define"</span> 0040 ; 0041 0042 <span style="font-weight:bold;">%type</span> <span style="color:#0057ae;"><int_val></span> type type_proc 0043 0044 <span style="font-weight:bold;">%code</span> top { 0045 <span style="color:#006e28;">#define </span><span style="color:#006e28;">_GNU_SOURCE</span> 0046 <span style="color:#006e28;">#include </span><span style="color:#ff5500;"><stdio.h></span> 0047 <span style="color:#0057ae;">int</span> val<span style="color:#ca60ca;">;</span> 0048 } 0049 0050 <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;"><*></span> 0051 <span style="font-weight:bold;">%lex-param</span> {scanner_mode <span style="color:#ca60ca;">*</span>mode}; 0052 <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} 0053 <span style="font-weight:bold;">%initial-action</span> { 0054 <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> 0055 }; 0056 0057 <span style="color:#b08000;font-weight:bold;">%%</span> 0058 0059 <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 ; 0060 0061 <span style="color:#bf0303;">number</span>: integer_number 0062 | TOK_DOUBLE 0063 { 0064 <span style="font-weight:bold;">$$</span> <span style="color:#ca60ca;">=</span> <span style="font-weight:bold;">new</span> var<span style="color:#ca60ca;">;</span> 0065 <span style="font-weight:bold;">$$</span><span style="color:#ca60ca;">-></span>type <span style="color:#ca60ca;">=</span> KW_REEL<span style="color:#ca60ca;">;</span> 0066 <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> 0067 <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;"><int_val></span><span style="font-weight:bold;">1</span><span style="color:#ca60ca;">;</span> 0068 }; 0069 <span style="color:#bf0303;">words</span>: 0070 <span style="font-weight:bold;">%empty</span> 0071 | words word 0072 ; 0073 0074 <span style="font-weight:bold;">%type</span> <span style="color:#0057ae;"><type></span> word; 0075 <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;"><type></span>; 0076 <span style="color:#bf0303;">word</span>: 0077 <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> } 0078 | <span style="color:#bf0303;">"hello"</span> { <span style="font-weight:bold;">$$</span> <span style="color:#ca60ca;">=</span> hello<span style="color:#ca60ca;">;</span> } 0079 | <span style="color:#bf0303;">"bye"</span> { <span style="font-weight:bold;">$$</span> <span style="color:#ca60ca;">=</span> bye<span style="color:#ca60ca;">;</span> } 0080 ; 0081 0082 <span style="color:#bf0303;">foo</span>: { <span style="font-weight:bold;">$$</span> <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">0</span> } 0083 | 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> } 0084 | 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> 0085 0086 <span style="color:#bf0303;font-weight:bold;">h</span><span style="color:#bf0303;">ello</span>: 0087 gram1 { <span style="font-weight:bold;">$$</span> <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;">"hi"</span> }; 0088 | gram2 0089 ;; 0090 0091 <span style="color:#b08000;font-weight:bold;">%%</span> 0092 0093 <span style="color:#006e28;">#include </span><span style="color:#ff5500;"><stdio.h></span> 0094 0095 <span style="color:#0057ae;">int</span> main<span style="color:#ca60ca;">(</span><span style="color:#0057ae;">void</span><span style="color:#ca60ca;">)</span> 0096 <span style="color:#ca60ca;">{</span> 0097 puts<span style="color:#ca60ca;">(</span><span style="color:#bf0303;">"Hello, World!"</span><span style="color:#ca60ca;">)</span><span style="color:#ca60ca;">;</span> 0098 <span style="font-weight:bold;">return</span> <span style="color:#b08000;">0</span><span style="color:#ca60ca;">;</span> 0099 <span style="color:#ca60ca;">}</span> 0100 0101 <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> 0102 </pre></body></html>