Warning, /frameworks/syntax-highlighting/data/syntax/ocamlyacc.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!-- Kate syntax highlighting for the Objective Caml 'Ocamlllex' --> 0003 <!DOCTYPE language 0004 [ 0005 <!-- Regular expresion constants: --> 0006 <!ENTITY LOWER "a-z\300-\326\330-\337"> <!-- Lowercase Latin-1 letters. --> 0007 <!ENTITY UPPER "A-Z\340-\366\370-\377"> <!-- Uppercase Latin-1 letters. --> 0008 <!ENTITY LETTER "&LOWER;&UPPER;"> <!-- All Latin-1 letters. --> 0009 <!ENTITY LIDENT "[&LOWER;_][&LETTER;0-9_']*"> <!-- Lowercase OCaml identifiers. --> 0010 <!ENTITY UIDENT "`?[&UPPER;][&LETTER;0-9_']*"> <!-- Uppercase OCaml identifiers. --> 0011 <!ENTITY IDENT "`?[&LETTER;][&LETTER;0-9_']*"> <!-- All OCaml identifiers. --> 0012 ]> 0013 <language name="Objective Caml Ocamlyacc" 0014 section="Sources" 0015 extensions="*.mly" 0016 mimetype="" 0017 version="6" 0018 kateversion="5.79" 0019 priority="10" 0020 author="Glyn Webster (glynwebster@orcon.net.nz) and Vincent Hugot (vincent.hugot@gmail.com)" 0021 license="LGPL" > 0022 0023 <highlighting> 0024 <list name="typed symbol list keywords"> 0025 <item>%token</item> 0026 <item>%type</item> 0027 </list> 0028 0029 <list name="symbol list keywords"> 0030 <item>%left</item> 0031 <item>%right</item> 0032 <item>%nonassoc</item> 0033 <item>%start</item> 0034 </list> 0035 0036 <list name="rule keywords"> 0037 <item>%prec</item> 0038 <item>error</item> 0039 </list> 0040 0041 <contexts> 0042 <!-- Note: Because the Yacc grammar is so simple I've written this so that any symbol 0043 that has not been specifically dealt with by a highlighting rule is an error. --> 0044 0045 <!-- Declaration section: Header sections and Yacc symbol declararations. --> 0046 <!-- A %% marks the end of the Declaration section and the start of the rules section. --> 0047 <context name="Declarations" lineEndContext="#stay" attribute="Error"> 0048 <Detect2Chars char="%" char1="{" context="Header" attribute="Normal" beginRegion="header" /> 0049 <keyword String="typed symbol list keywords" context="Typed Symbol List" attribute="Keyword" /> 0050 <keyword String="symbol list keywords" context="Symbol List" attribute="Keyword" /> 0051 <Detect2Chars char="%" char1="%" context="Rules" attribute="Normal" /> 0052 <IncludeRules context="General" /> 0053 </context> 0054 0055 <!-- Header section: Ocaml code in the declarations between %{ %} brackets --> 0056 <context name="Header" lineEndContext="#stay" attribute="Normal"> 0057 <Detect2Chars char="%" char1="}" context="#pop" attribute="Normal" endRegion="header" /> 0058 <IncludeRules context="##Objective Caml" includeAttrib="true" /> 0059 </context> 0060 0061 <!-- A typed symbol list: an optional Ocaml type declaration between < > brackets, followed by a symbol list. --> 0062 <context name="Typed Symbol List" lineEndContext="#pop" attribute="Error"> 0063 <DetectChar char="<" context="Type" attribute="Normal" /> 0064 <RegExpr String="&UIDENT;" context="Symbol List" attribute="Uppercase Name (Token)" /> 0065 <RegExpr String="&LIDENT;" context="Symbol List" attribute="Lowercase Name (Rule)" /> 0066 <IncludeRules context="General" /> 0067 </context> 0068 <context name="Type" lineEndContext="#stay" attribute="Normal"> 0069 <DetectChar char=">" context="#pop" attribute="Normal" /> 0070 <IncludeRules context="##Objective Caml" includeAttrib="true" /> 0071 </context> 0072 0073 <!-- A symbol list: one line of sybmol names and option comments. --> 0074 <context name="Symbol List" lineEndContext="#pop" attribute="Error"> 0075 <RegExpr String="&UIDENT;" context="#stay" attribute="Uppercase Name (Token)" /> 0076 <RegExpr String="&LIDENT;" context="#stay" attribute="Lowercase Name (Rule)" /> 0077 <IncludeRules context="General" /> 0078 </context> 0079 0080 <!-- Rules section:. --> 0081 <!-- A %% marks the end of the rules section and the start of the trailer section: --> 0082 <context name="Rules" lineEndContext="#stay" attribute="Error"> 0083 <Detect2Chars char="%" char1="%" context="Trailer" attribute="Normal" /> 0084 <RegExpr String="&IDENT;" context="Rule, Expecting Colon" attribute="Rule Definition Name" beginRegion="rule" /> 0085 <IncludeRules context="General" /> 0086 </context> 0087 <context name="Rule, Expecting Colon" lineEndContext="#stay" attribute="Error"> 0088 <DetectChar char=":" context="Rule" attribute="Normal" /> 0089 <!-- Incomplete rule before the start of the trailer: --> 0090 <Detect2Chars char="%" char1="%" context="Trailer" attribute="Error" /> 0091 <IncludeRules context="General" /> 0092 </context> 0093 <context name="Rule" lineEndContext="#stay" attribute="Error"> 0094 <DetectChar char=";" context="#pop#pop" attribute="Normal" endRegion="rule" /> 0095 <DetectChar char="|" context="#stay" attribute="Normal" /> 0096 <keyword String="rule keywords" context="#stay" attribute="Keyword" /> 0097 <RegExpr String="&UIDENT;" context="#stay" attribute="Uppercase Name (Token)" /> 0098 <RegExpr String="&LIDENT;" context="#stay" attribute="Lowercase Name (Rule)" /> 0099 <DetectChar char="{" context="Action" attribute="Normal" beginRegion="action" /> 0100 <IncludeRules context="General" /> 0101 </context> 0102 0103 <!-- A rule action: Ocaml code between { } brackets containing $1,$2,$3.. symbols. --> 0104 <!-- (The "Nested Action" contexts override the rules for [ ] and { } brackets in the Objective 0105 Caml highlighting file. They make make the $1,$2,$3.. symbols show up inside those brackets.) --> 0106 <context name="Action" lineEndContext="#stay" attribute="Normal"> 0107 <DetectChar char="}" context="#pop" attribute="Normal" endRegion="action" /> 0108 <RegExpr String="[$][0-9]+" context="#stay" attribute="Semantic Attribute" /> 0109 <DetectChar char="{" context="Nested Action 1" /> 0110 <DetectChar char="[" context="Nested Action 2" /> 0111 <IncludeRules context="##Objective Caml" includeAttrib="true" /> 0112 </context> 0113 <context name="Nested Action 1" lineEndContext="#stay" attribute="Normal"> 0114 <DetectChar char="}" context="#pop" /> 0115 <IncludeRules context="Action" includeAttrib="true" /> 0116 </context> 0117 <context name="Nested Action 2" lineEndContext="#stay" attribute="Normal"> 0118 <DetectChar char="]" context="#pop" /> 0119 <IncludeRules context="Action" includeAttrib="true" /> 0120 </context> 0121 0122 <!-- Trailer section: Ocaml code until the end of the file. --> 0123 <context name="Trailer" lineEndContext="#stay" attribute="Normal"> 0124 <IncludeRules context="##Objective Caml" includeAttrib="true" /> 0125 </context> 0126 0127 <!-- General rules for all contexts: --> 0128 <!-- 1) Whitespace is expected. --> 0129 <!-- 2) Ocamlyacc's comments are in /* */ brackets and are nestable. --> 0130 <context name="General" lineEndContext="#stay" attribute="Normal"> 0131 <DetectSpaces context="#stay" attribute="Normal" /> 0132 <Detect2Chars char="/" char1="*" context="Comment" attribute="Comment" beginRegion="comment" /> 0133 </context> 0134 <context name="Comment" lineEndContext="#stay" attribute="Comment"> 0135 <Detect2Chars char="*" char1="/" context="#pop" attribute="Comment" endRegion="comment" /> 0136 <Detect2Chars char="/" char1="*" context="Comment" attribute="Comment" beginRegion="comment" /> 0137 <DetectSpaces /> 0138 <IncludeRules context="##Comments" /> 0139 </context> 0140 0141 </contexts> 0142 0143 <itemDatas> 0144 <itemData name="Keyword" defStyleNum="dsOthers" bold="true" /> 0145 <itemData name="Normal" defStyleNum="dsOthers" /> 0146 <itemData name="Uppercase Name (Token)" defStyleNum="dsOthers" /> 0147 <itemData name="Lowercase Name (Rule)" defStyleNum="dsOthers" italic="true" /> 0148 <itemData name="Rule Definition Name" defStyleNum="dsOthers" italic="true" bold="true" /> 0149 <itemData name="Semantic Attribute" defStyleNum="dsOthers" /> 0150 <itemData name="Comment" defStyleNum="dsComment" /> 0151 <itemData name="Error" defStyleNum="dsError" /> 0152 </itemDatas> 0153 </highlighting> 0154 0155 <general> 0156 <keywords casesensitive="true" weakDeliminator="%" /> 0157 <comments> 0158 <comment name="multiLine" start="/*" end="*/" region="comment" /> 0159 </comments> 0160 </general> 0161 </language> 0162 <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->