[gtksourceview] Add SystemVerilog language by Ben James. See bug #628246.
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Add SystemVerilog language by Ben James. See bug #628246.
- Date: Sat, 4 Sep 2010 10:28:29 +0000 (UTC)
commit f5f7a98ec12c15ff4de99208496c915b4053277d
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Sat Sep 4 12:28:06 2010 +0200
Add SystemVerilog language by Ben James. See bug #628246.
data/language-specs/Makefile.am | 1 +
data/language-specs/systemverilog.lang | 263 ++++++++++++++++++++++++++++++++
data/language-specs/testfiles.sh | 51 ++++++
po/POTFILES.in | 1 +
4 files changed, 316 insertions(+), 0 deletions(-)
---
diff --git a/data/language-specs/Makefile.am b/data/language-specs/Makefile.am
index 366c3d8..81ba499 100644
--- a/data/language-specs/Makefile.am
+++ b/data/language-specs/Makefile.am
@@ -72,6 +72,7 @@ LANGUAGES = \
sh.lang \
sparql.lang \
sql.lang \
+ systemverilog.lang \
t2t.lang \
tcl.lang \
texinfo.lang \
diff --git a/data/language-specs/systemverilog.lang b/data/language-specs/systemverilog.lang
new file mode 100644
index 0000000..fdcf584
--- /dev/null
+++ b/data/language-specs/systemverilog.lang
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Author: Ben James
+ Copyright (C) 2010 Ben James
+
+ GtkSourceView is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ GtkSourceView is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+-->
+<language id="systemverilog" _name="SystemVerilog" version="2.0" _section="Sources">
+ <metadata>
+ <property name="globs">*.sv;*.svh</property>
+ <property name="line-comment-start">//</property>
+ <property name="block-comment-start">/*</property>
+ <property name="block-comment-end">*/</property>
+ </metadata>
+
+ <styles>
+ <style id="compiler-directive" _name="Compiler Directive" map-to="def:preprocessor"/>
+ <style id="system-task" _name="System Task" map-to="def:keyword"/>
+ <style id="keyword" _name="Keyword" map-to="def:keyword"/>
+ <style id="type" _name="Type" map-to="def:type"/>
+ </styles>
+
+ <definitions>
+
+ <context id="compiler-directive" style-ref="compiler-directive">
+ <prefix>`</prefix>
+ <keyword>begin_keywords</keyword>
+ <keyword>default_decay_time</keyword>
+ <keyword>default_trireg_strength</keyword>
+ <keyword>delay_mode_distributed</keyword>
+ <keyword>delay_mode_path</keyword>
+ <keyword>delay_mode_unit</keyword>
+ <keyword>delay_mode_zero</keyword>
+ <keyword>end_keywords</keyword>
+ <keyword>pragma</keyword>
+ </context>
+
+ <context id="system-task" style-ref="system-task">
+ <prefix>\$</prefix>
+ <keyword>assertkill</keyword>
+ <keyword>assertoff</keyword>
+ <keyword>asserton</keyword>
+ <keyword>bits</keyword>
+ <keyword>bitstoshortreal</keyword>
+ <keyword>cast</keyword>
+ <keyword>comment</keyword>
+ <keyword>countones</keyword>
+ <keyword>dimensions</keyword>
+ <keyword>error</keyword>
+ <keyword>exit</keyword>
+ <keyword>fatal</keyword>
+ <keyword>fell</keyword>
+ <keyword>fullskew</keyword>
+ <keyword>get_coverage</keyword>
+ <keyword>high</keyword>
+ <keyword>history</keyword>
+ <keyword>increment</keyword>
+ <keyword>info</keyword>
+ <keyword>isunbounded</keyword>
+ <keyword>isunknown</keyword>
+ <keyword>left</keyword>
+ <keyword>load_coverage_db</keyword>
+ <keyword>low</keyword>
+ <keyword>onehot</keyword>
+ <keyword>onehot0</keyword>
+ <keyword>past</keyword>
+ <keyword>recrem</keyword>
+ <keyword>removal</keyword>
+ <keyword>right</keyword>
+ <keyword>root</keyword>
+ <keyword>rose</keyword>
+ <keyword>sampled</keyword>
+ <keyword>set_coverage_db_name</keyword>
+ <keyword>shortrealtobits</keyword>
+ <keyword>showvariables</keyword>
+ <keyword>size</keyword>
+ <keyword>stable</keyword>
+ <keyword>timescale</keyword>
+ <keyword>timeskew</keyword>
+ <keyword>typename</keyword>
+ <keyword>typeof</keyword>
+ <keyword>urandom</keyword>
+ <keyword>unit</keyword>
+ <keyword>unpacked_dimensions</keyword>
+ <keyword>upscope</keyword>
+ <keyword>urandom</keyword>
+ <keyword>urandom_range</keyword>
+ <keyword>var</keyword>
+ <keyword>vcdclose</keyword>
+ <keyword>version</keyword>
+ <keyword>warning</keyword>
+ </context>
+
+ <context id="keyword" style-ref="keyword">
+ <keyword>accept_on</keyword>
+ <keyword>alias</keyword>
+ <keyword>always_comb</keyword>
+ <keyword>always_ff</keyword>
+ <keyword>always_latch</keyword>
+ <keyword>assert</keyword>
+ <keyword>assume</keyword>
+ <keyword>automatic</keyword>
+ <keyword>before</keyword>
+ <keyword>bind</keyword>
+ <keyword>bins</keyword>
+ <keyword>binsof</keyword>
+ <keyword>break</keyword>
+ <keyword>cell</keyword>
+ <keyword>checker</keyword>
+ <keyword>class</keyword>
+ <keyword>clocking</keyword>
+ <keyword>config</keyword>
+ <keyword>const</keyword>
+ <keyword>constraint</keyword>
+ <keyword>context</keyword>
+ <keyword>continue</keyword>
+ <keyword>cover</keyword>
+ <keyword>covergroup</keyword>
+ <keyword>coverpoint</keyword>
+ <keyword>cross</keyword>
+ <keyword>design</keyword>
+ <keyword>dist</keyword>
+ <keyword>do</keyword>
+ <keyword>endchecker</keyword>
+ <keyword>endclass</keyword>
+ <keyword>endclocking</keyword>
+ <keyword>endconfig</keyword>
+ <keyword>endgroup</keyword>
+ <keyword>endinterface</keyword>
+ <keyword>endpackage</keyword>
+ <keyword>endprogram</keyword>
+ <keyword>endproperty</keyword>
+ <keyword>endproperty</keyword>
+ <keyword>endsequence</keyword>
+ <keyword>endspecify</keyword>
+ <keyword>enum</keyword>
+ <keyword>expect</keyword>
+ <keyword>export</keyword>
+ <keyword>extends</keyword>
+ <keyword>extern</keyword>
+ <keyword>final</keyword>
+ <keyword>first_match</keyword>
+ <keyword>foreach</keyword>
+ <keyword>forever</keyword>
+ <keyword>forkjoin</keyword>
+ <keyword>global</keyword>
+ <keyword>iff</keyword>
+ <keyword>ignore_bins</keyword>
+ <keyword>illegal_bins</keyword>
+ <keyword>implies</keyword>
+ <keyword>import</keyword>
+ <keyword>incdir</keyword>
+ <keyword>inside</keyword>
+ <keyword>instance</keyword>
+ <keyword>interface</keyword>
+ <keyword>intersect</keyword>
+ <keyword>join_any</keyword>
+ <keyword>join_none</keyword>
+ <keyword>liblist</keyword>
+ <keyword>library</keyword>
+ <keyword>local</keyword>
+ <keyword>matches</keyword>
+ <keyword>modport</keyword>
+ <keyword>new</keyword>
+ <keyword>nexttime</keyword>
+ <keyword>noshoowcancelled</keyword>
+ <keyword>null</keyword>
+ <keyword>package</keyword>
+ <keyword>packed</keyword>
+ <keyword>priority</keyword>
+ <keyword>program</keyword>
+ <keyword>property</keyword>
+ <keyword>protected</keyword>
+ <keyword>pulsestyle_onevent</keyword>
+ <keyword>pulsestyle_ondetect</keyword>
+ <keyword>pure</keyword>
+ <keyword>rand</keyword>
+ <keyword>randc</keyword>
+ <keyword>randcase</keyword>
+ <keyword>randsequence</keyword>
+ <keyword>ref</keyword>
+ <keyword>reject_on</keyword>
+ <keyword>restrict</keyword>
+ <keyword>return</keyword>
+ <keyword>s_always</keyword>
+ <keyword>s_eventually</keyword>
+ <keyword>s_nexttime</keyword>
+ <keyword>s_until</keyword>
+ <keyword>s_until_with</keyword>
+ <keyword>sequence</keyword>
+ <keyword>showcancelled</keyword>
+ <keyword>solve</keyword>
+ <keyword>static</keyword>
+ <keyword>struct</keyword>
+ <keyword>super</keyword>
+ <keyword>sync_accept_on</keyword>
+ <keyword>sync_reject_on</keyword>
+ <keyword>tagged</keyword>
+ <keyword>this</keyword>
+ <keyword>throughout</keyword>
+ <keyword>timeprecision</keyword>
+ <keyword>timeunit</keyword>
+ <keyword>type</keyword>
+ <keyword>typedef</keyword>
+ <keyword>union</keyword>
+ <keyword>unique</keyword>
+ <keyword>unique0</keyword>
+ <keyword>until</keyword>
+ <keyword>until_with</keyword>
+ <keyword>untyped</keyword>
+ <keyword>use</keyword>
+ <keyword>var</keyword>
+ <keyword>virtual</keyword>
+ <keyword>void</keyword>
+ <keyword>wait_order</keyword>
+ <keyword>wildcard</keyword>
+ <keyword>with</keyword>
+ <keyword>within</keyword>
+ </context>
+
+ <context id="type" style-ref="type">
+ <keyword>bit</keyword>
+ <keyword>byte</keyword>
+ <keyword>chandle</keyword>
+ <keyword>genvar</keyword>
+ <keyword>int</keyword>
+ <keyword>localparam</keyword>
+ <keyword>logic</keyword>
+ <keyword>longint</keyword>
+ <keyword>shortint</keyword>
+ <keyword>shortreal</keyword>
+ <keyword>string</keyword>
+ <keyword>uwire</keyword>
+ </context>
+
+ <!-- Language definition: SystemVerilog-specific items and everything from Verilog. -->
+ <context id="systemverilog" class="no-spell-check">
+ <include>
+ <context ref="compiler-directive"/>
+ <context ref="system-task"/>
+ <context ref="keyword"/>
+ <context ref="type"/>
+ <context ref="verilog:verilog"/>
+ </include>
+ </context>
+
+ </definitions>
+
+</language>
diff --git a/data/language-specs/testfiles.sh b/data/language-specs/testfiles.sh
index 7aa4367..f27347c 100755
--- a/data/language-specs/testfiles.sh
+++ b/data/language-specs/testfiles.sh
@@ -15,6 +15,57 @@
dir="testdir"
mkdir -p $dir/
+cat > $dir/file.svh << EOFEOF
+class my_class extends some_class;
+
+ // This is a comment.
+ /* This is also a comment, but it containts keywords: bit string, etc */
+
+ // Some types.
+ string my_string = "This is a string";
+ bit [3:0] my_bits = 4'b0z1x;
+ integer my_integer = 32'h0z2ab43x;
+ real my_real = 1.2124155e-123;
+ shortreal my_shortreal = -0.1111e1;
+ int my_int = 53152462;
+
+ extern function bit
+ my_function(
+ int unsigned something);
+
+endclass : my_class
+
+function bit
+ my_class::my_function(
+ int unsigned something);
+
+ /* Display a string.
+ *
+ * This is a slightly awkward string as it has
+ * special characters and line continuations.
+ */
+ $display("Display a string that continues over \
+ multiple lines and contains special \
+ characters: \n \t \" \'");
+
+ // Use a system task.
+ my_int = $bits(my_bits);
+
+ // $asserton(); // Commenting a system task.
+ // my_function(); // Commenting a function.
+
+endfunction my_function
+
+program test();
+
+ my_class c;
+
+ c = new();
+ c.my_function(3);
+
+endprogram : test
+EOFEOF
+
cat > $dir/file.prg << EOFEOF
import "mod_say"
import "mod_rand"
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 027ff77..d14cdd2 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -71,6 +71,7 @@ data/language-specs/scheme.lang
data/language-specs/sh.lang
data/language-specs/sparql.lang
data/language-specs/sql.lang
+data/language-specs/systemverilog.lang
data/language-specs/t2t.lang
data/language-specs/tcl.lang
data/language-specs/texinfo.lang
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]