diff options
Diffstat (limited to 'spec/firrtl.xml')
| -rw-r--r-- | spec/firrtl.xml | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/spec/firrtl.xml b/spec/firrtl.xml new file mode 100644 index 00000000..a5c5f318 --- /dev/null +++ b/spec/firrtl.xml @@ -0,0 +1,174 @@ +<?xml version="1.0" encoding="UTF-8"?> +<language name="FIRRTL" version="1" kateversion="2.4" section="Sources" extensions="*.firrtl;*.fir"> + <highlighting> + <list name="structure"> + <item>circuit</item> + <item>module</item> + <item>extmodule</item> + </list> + <list name="keywords"> + <item>input</item> + <item>output</item> + <item>defname</item> + <item>parameter</item> + <item>skip</item> + <item>is</item> + <item>invalid</item> + <item>inst</item> + <item>of</item> + <item>wire</item> + <item>node</item> + </list> + <list name="types"> + <item>UInt</item> + <item>SInt</item> + <item>Fixed</item> + <item>Analog</item> + <item>Clock</item> + <item>Reset</item> + <item>AsyncReset</item> + </list> + <list name="conditionals"> + <item>when</item> + <item>else</item> + </list> + <list name="primops"> + <item>attach</item> + <item>add</item> + <item>sub</item> + <item>mul</item> + <item>div</item> + <item>rem</item> + <item>lt</item> + <item>leq</item> + <item>gt</item> + <item>geq</item> + <item>eq</item> + <item>neq</item> + <item>pad</item> + <item>asUInt</item> + <item>asSInt</item> + <item>asClock</item> + <item>shl</item> + <item>shr</item> + <item>dshl</item> + <item>dshr</item> + <item>cvt</item> + <item>neg</item> + <item>not</item> + <item>and</item> + <item>or</item> + <item>xor</item> + <item>andr</item> + <item>orr</item> + <item>xorr</item> + <item>cat</item> + <item>bits</item> + <item>head</item> + <item>tail</item> + <item>asFixedPoint</item> + <item>bpshl</item> + <item>bpshr</item> + <item>bpset</item> + <item>mux</item> + <item>validif</item> + <item>stop</item> + <item>printf</item> + <item>assert</item> + <item>assume</item> + <item>cover</item> + </list> + <contexts> + <context name="Normal Text" attribute="ID" lineEndContext="#pop"> + <keyword attribute="Keyword" context="#stay" String="keywords" /> + <keyword attribute="Keyword" context="type" String="types" /> + <keyword attribute="Structure" context="#stay" String="structure" /> + <keyword attribute="PrimOp" context="#stay" String="primops" /> + <keyword attribute="Conditional" context="#stay" String="conditionals" /> + <Detect2Chars char="(" char1="*" attribute="Info" context="info"/> + <DetectChar char= ";" context="comment" attribute="Comment"/> + <DetectChar char="{" context="field" attribute="Separator"/> + <Detect2Chars char="<" char1="=" attribute="Operator" context="#stay"/> + <Detect2Chars char="<" char1="-" attribute="Operator" context="#stay"/> + <Detect2Chars char="=" char1=">" attribute="Operator" context="#stay"/> + <AnyChar String=":=.,()" attribute="Separator" context="#stay"/> + <DetectChar char="[" attribute="Operator" context="widthOrDepthOrLit"/> + <DetectChar char=""" attribute="String" context="string"/> + <StringDetect String="reg" attribute="Keyword" context="register"/> + <StringDetect String="mem" attribute="Keyword" context="memoryFirst"/> + </context> + <context name="memoryFirst" attribute="ID" lineEndContext="#pop!memory"> + </context> + <context name="memory" attribute="Keyword" lineEndContext="#stay"> + <Detect2Chars char="=" char1=">" attribute="Operator" context="memoryRHS"/> + <StringDetect String="read-under-write" attribute="Keyword" context="#pop!memoryLast"/> + </context> + <context name="memoryRHS" attribute="ID" lineEndContext="#pop"> + <keyword String="types" attribute="Keyword" context="type"/> + </context> + <context name="memoryLast" attribute="Keyword" lineEndContext="#pop"> + <Detect2Chars char="=" char1=">" attribute="Operator" context="#stay"/> + </context> + <context name="register" attribute="ID" lineEndContext="#pop"> + <keyword String="types" attribute="Keyword" context="type"/> + <AnyChar String=":=>.,()" attribute="Separator" context="#stay"/> + <StringDetect String="with" attribute="Keyword" context="#pop!registerinit"/> + </context> + <context name="registerinit" attribute="comment" lineEndContext="#stay"> + <AnyChar String=":=>.,()" attribute="Separator" context="#stay"/> + <StringDetect String="reset" attribute="Keyword" context="#pop"/> + <DetectChar char= ";" context="comment" attribute="Comment"/> + </context> + <context name="comment" attribute="Comment" lineEndContext="#pop"> + </context> + <context name="string" attribute="String" lineEndContext="#stay"> + <DetectChar char=""" attribute="String" context="#pop"/> + </context> + <context name="info" attribute="Info" lineEndContext="#stay"> + <DetectChar char="]" context="#pop"/> + </context> + <context name="type" attribute="String" lineEndContext="#pop"> + <AnyChar String="<[(" attribute="Operator" context="widthOrDepthOrLit"/> + <AnyChar String="," attribute="Separator" context="#pop"/> + <AnyChar String="}" attribute="Separator" context="#pop#pop"/> + <DetectChar char= ";" context="comment" attribute="Comment"/> + </context> + <context name="widthOrDepthOrLit" attribute="String" lineEndContext="#stay"> + <DetectChar char="<" attribute="Operator" context="widthOrDepthOrLit"/> + <AnyChar String=">])" attribute="Operator" context="#pop"/> + </context> + <context name="field" attribute="ID" lineEndContext="#stay"> + <StringDetect String="flip" attribute="Keyword" context="#stay"/> + <keyword String="types" attribute="Keyword" context="type"/> + <DetectChar char="{" attribute="Separator" context="field"/> + <DetectChar char="}" attribute="Separator" context="#pop"/> + <AnyChar String=":," attribute="Separator" context="#stay"/> + <DetectChar char= ";" context="comment" attribute="Comment"/> + </context> + </contexts> + <itemDatas> + <itemData name="Normal Text" defStyleNum="dsNormal" /> + <itemData name="Keyword" defStyleNum="dsKeyword" /> + <itemData name="Structure" defStyleNum="dsKeyword" /> + <itemData name="PrimOp" defStyleNum="dsOperator" /> + <itemData name="Conditional" defStyleNum="dsControlFlow" /> + <itemData name="String" defStyleNum="dsString" /> + <itemData name="Comment" defStyleNum="dsComment" /> + <itemData name="ID" defStyleNum="dsVariable" /> + <itemData name="Operator" defStyleNum="dsOperator" /> + </itemDatas> + </highlighting> + <general> + <comments> + <comment name="singleLine" start=";"/> + </comments> + <keywords casesensitive="1"/> + <folding indentationsensitive="0"/> + <emptyLines> + <emptyLine regexpr="\s+"/> + <emptyLine regexpr="\s*#.*"/> + </emptyLines> + <spellchecking> + </spellchecking> + </general> +</language> |
