[gtksourceview] Added Opal language.



commit 6e01813a9960481b423d9025e938c85aaefa4937
Author: Benjamin Drung <benjamin drung gmail com>
Date:   Sat Dec 25 14:02:10 2010 +0100

    Added Opal language.

 data/language-specs/Makefile.am |    1 +
 data/language-specs/opal.lang   |  343 +++++++++++++++++++++++++++++++++++++++
 po/POTFILES.in                  |    1 +
 tests/testfiles.sh              |   14 ++
 4 files changed, 359 insertions(+), 0 deletions(-)
---
diff --git a/data/language-specs/Makefile.am b/data/language-specs/Makefile.am
index 33d92ad..16b3967 100644
--- a/data/language-specs/Makefile.am
+++ b/data/language-specs/Makefile.am
@@ -59,6 +59,7 @@ LANGUAGES =			\
 	ocl.lang		\
 	octave.lang		\
 	ooc.lang		\
+	opal.lang		\
 	pascal.lang		\
 	perl.lang		\
 	php.lang		\
diff --git a/data/language-specs/opal.lang b/data/language-specs/opal.lang
new file mode 100644
index 0000000..9be1587
--- /dev/null
+++ b/data/language-specs/opal.lang
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ This file is part of GtkSourceView
+
+ Authors: Alexander Eichner <aeichner freitagsrunde org>
+ Copyright (C) 2007 Alexander Eichner <aeichner freitagsrunde org>
+
+ 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="opal" _name="Opal" version="2.0" _section="Sources">
+  <metadata>
+    <property name="globs">*.sign;*.impl</property>
+    <property name="line-comment-start">-- </property>
+    <property name="block-comment-start">/*</property>
+    <property name="block-comment-end">*/</property>
+  </metadata>
+
+  <styles>
+    <style id="module-handler" _name="Module Handler" map-to="def:preprocessor"/>
+    <style id="comment"        _name="Comment"        map-to="def:comment"/>
+    <style id="common-defines" _name="Common Defines" map-to="def:special-constant"/>
+    <style id="error"          _name="Error"          map-to="def:error"/>
+    <style id="string"         _name="String"         map-to="def:string"/>
+    <style id="keyword"        _name="Keyword"        map-to="def:keyword"/>
+    <style id="boolean"        _name="Boolean value"  map-to="def:boolean"/>
+    <style id="decimal"        _name="Decimal number" map-to="def:decimal"/>
+    <style id="type"           _name="Data Type"      map-to="def:type"/>
+    <style id="keysymbol"      _name="Keysymbol"      map-to="def:keyword"/>
+  </styles>
+
+  <definitions>
+
+    <context id="comment" style-ref="comment" end-at-line-end="true" class="comment" class-disabled="no-spell-check">
+      <start>-- </start>
+      <include>
+        <context ref="def:in-line-comment"/>
+      </include>
+    </context>
+
+    <context id="decimal" style-ref="decimal">
+      <match>(?&lt;![\w\.])([1-9][0-9]*|0)[lL]?(?![\w\.])</match>
+    </context>
+
+    <context id="comment-multiline" style-ref="comment" class="comment" class-disabled="no-spell-check">
+      <start>/\*</start>
+      <end>\*/</end>
+      <include>
+        <context ref="def:in-comment"/>
+      </include>
+    </context>
+
+    <context id="close-comment-outside-comment" style-ref="error">
+      <match>\*/(?!\*)</match>
+    </context>
+
+    <context id="string" style-ref="string" end-at-line-end="true" class="string" class-disabled="no-spell-check">
+      <start>"</start>
+      <end>"</end>
+    </context>
+
+    <context id="module-handler" style-ref="module-handler">
+      <keyword>IMPORT</keyword>
+      <keyword>COMPLETELY</keyword>
+      <keyword>ONLY</keyword>
+    </context>
+
+    <context id="keywords" style-ref="keyword">
+      <keyword>ALL</keyword>
+      <keyword>AND</keyword>
+      <keyword>ANDIF</keyword>
+      <keyword>ANY</keyword>
+      <keyword>AS</keyword>
+      <keyword>ASSERT</keyword>
+      <keyword>AXM</keyword>
+      <keyword>DATA</keyword>
+      <keyword>DEF</keyword>
+      <keyword>DERIVE</keyword>
+      <keyword>DFD</keyword>
+      <keyword>DESCRIMINATORS</keyword>
+      <keyword>ELSE</keyword>
+      <keyword>EX</keyword>
+      <keyword>EXTERNAL</keyword>
+      <keyword>FI</keyword>
+      <keyword>FIX</keyword>
+      <keyword>FUN</keyword>
+      <keyword>IF</keyword>
+      <keyword>IMPLEMENTATION</keyword>
+      <keyword>IMPLIES</keyword>
+      <keyword>IN</keyword>
+      <keyword>INHERIT</keyword>
+      <keyword>INJECTIONS</keyword>
+      <keyword>INTERFACE</keyword>
+      <keyword>INTERNAL</keyword>
+      <keyword>LAW</keyword>
+      <keyword>LAZY</keyword>
+      <keyword>LEFTASSOC</keyword>
+      <keyword>LET</keyword>
+      <keyword>MODULE</keyword>
+      <keyword>NOT</keyword>
+      <keyword>NOR</keyword>
+      <keyword>OR</keyword>
+      <keyword>ORIF</keyword>
+      <keyword>OTHERWISE</keyword>
+      <keyword>POST</keyword>
+      <keyword>PRE</keyword>
+      <keyword>PRED</keyword>
+      <keyword>PRIORITY</keyword>
+      <keyword>PROPERTIES</keyword>
+      <keyword>REALIZES</keyword>
+      <keyword>REQUIRE</keyword>
+      <keyword>RIGHTASSOC</keyword>
+      <keyword>SELECTORS</keyword>
+      <keyword>SIGNATURE</keyword>
+      <keyword>SORT</keyword>
+      <keyword>SPC</keyword>
+      <keyword>SPEC</keyword>
+      <keyword>SPECIFICATION</keyword>
+      <keyword>STRUCTURE</keyword>
+      <keyword>THE</keyword>
+      <keyword>THEN</keyword>
+      <keyword>THEORY</keyword>
+      <keyword>THM</keyword>
+      <keyword>TYPE</keyword>
+      <keyword>UNIQ</keyword>
+      <keyword>WHERE</keyword>
+    </context>
+
+    <context id="keysymbol" style-ref="keyword">
+      <keyword>::</keyword>
+      <keyword>==</keyword>
+      <keyword>-&gt;</keyword>
+    </context>
+
+    <context id="types" style-ref="type">
+      <keyword>aEntry</keyword>
+      <keyword>agent</keyword>
+      <keyword>align</keyword>
+      <keyword>anchor</keyword>
+      <keyword>ans</keyword>
+      <keyword>arg</keyword>
+      <keyword>arg1</keyword>
+      <keyword>arg2</keyword>
+      <keyword>array</keyword>
+      <keyword>arrowWhere</keyword>
+      <keyword>bag</keyword>
+      <keyword>bitmap</keyword>
+      <keyword>bool</keyword>
+      <keyword>bstree</keyword>
+      <keyword>byte</keyword>
+      <keyword>callback</keyword>
+      <keyword>canvasEditor</keyword>
+      <keyword>capStyle</keyword>
+      <keyword>channel</keyword>
+      <keyword>char</keyword>
+      <keyword>childstat</keyword>
+      <keyword>codom</keyword>
+      <keyword>codomFrom</keyword>
+      <keyword>codomTo</keyword>
+      <keyword>color</keyword>
+      <keyword>colorModel</keyword>
+      <keyword>com</keyword>
+      <keyword>composeOp</keyword>
+      <keyword>config</keyword>
+      <keyword>configCom</keyword>
+      <keyword>cursor</keyword>
+      <keyword>dArray</keyword>
+      <keyword>data</keyword>
+      <keyword>data1</keyword>
+      <keyword>data11</keyword>
+      <keyword>data2</keyword>
+      <keyword>data21</keyword>
+      <keyword>data3</keyword>
+      <keyword>data31</keyword>
+      <keyword>data4</keyword>
+      <keyword>data41</keyword>
+      <keyword>dataFrom</keyword>
+      <keyword>dataTo</keyword>
+      <keyword>defaultPrio</keyword>
+      <keyword>denotation</keyword>
+      <keyword>device</keyword>
+      <keyword>dist</keyword>
+      <keyword>distOut</keyword>
+      <keyword>dom</keyword>
+      <keyword>domFrom</keyword>
+      <keyword>domTo</keyword>
+      <keyword>drawing</keyword>
+      <keyword>dyn</keyword>
+      <keyword>emitter</keyword>
+      <keyword>env</keyword>
+      <keyword>event</keyword>
+      <keyword>eventInfo</keyword>
+      <keyword>file</keyword>
+      <keyword>filemode</keyword>
+      <keyword>filestat</keyword>
+      <keyword>filetype</keyword>
+      <keyword>first</keyword>
+      <keyword>first1</keyword>
+      <keyword>first2</keyword>
+      <keyword>first3</keyword>
+      <keyword>fission</keyword>
+      <keyword>fmt</keyword>
+      <keyword>font</keyword>
+      <keyword>from</keyword>
+      <keyword>from1</keyword>
+      <keyword>from2</keyword>
+      <keyword>funct</keyword>
+      <keyword>group</keyword>
+      <keyword>groupid</keyword>
+      <keyword>heap</keyword>
+      <keyword>iconfig</keyword>
+      <keyword>image</keyword>
+      <keyword>in</keyword>
+      <keyword>inData</keyword>
+      <keyword>index</keyword>
+      <keyword>inode</keyword>
+      <keyword>input</keyword>
+      <keyword>int</keyword>
+      <keyword>inter</keyword>
+      <keyword>interdom</keyword>
+      <keyword>interpreter</keyword>
+      <keyword>iseq</keyword>
+      <keyword>items</keyword>
+      <keyword>joinStyle</keyword>
+      <keyword>justifyHow</keyword>
+      <keyword>long</keyword>
+      <keyword>manager</keyword>
+      <keyword>managerRequest</keyword>
+      <keyword>map</keyword>
+      <keyword>mapEntry</keyword>
+      <keyword>mark</keyword>
+      <keyword>mid</keyword>
+      <keyword>modifier</keyword>
+      <keyword>nat</keyword>
+      <keyword>natMap</keyword>
+      <keyword>OBJECT</keyword>
+      <keyword>option</keyword>
+      <keyword>orient</keyword>
+      <keyword>out</keyword>
+      <keyword>outData</keyword>
+      <keyword>output</keyword>
+      <keyword>packOp</keyword>
+      <keyword>pair</keyword>
+      <keyword>parser</keyword>
+      <keyword>permission</keyword>
+      <keyword>point</keyword>
+      <keyword>positionRequest</keyword>
+      <keyword>process</keyword>
+      <keyword>procstat</keyword>
+      <keyword>quad</keyword>
+      <keyword>range</keyword>
+      <keyword>real</keyword>
+      <keyword>regulator</keyword>
+      <keyword>rel</keyword>
+      <keyword>relief</keyword>
+      <keyword>res</keyword>
+      <keyword>res1</keyword>
+      <keyword>res2</keyword>
+      <keyword>result</keyword>
+      <keyword>role</keyword>
+      <keyword>sap</keyword>
+      <keyword>script</keyword>
+      <keyword>scroller</keyword>
+      <keyword>scrollView</keyword>
+      <keyword>scrollWindow</keyword>
+      <keyword>searchOpt</keyword>
+      <keyword>second</keyword>
+      <keyword>seekMode</keyword>
+      <keyword>selector</keyword>
+      <keyword>semaphor</keyword>
+      <keyword>seq</keyword>
+      <keyword>seqEntry</keyword>
+      <keyword>set</keyword>
+      <keyword>setEntry</keyword>
+      <keyword>short</keyword>
+      <keyword>sigaction</keyword>
+      <keyword>sighandler</keyword>
+      <keyword>sigmask</keyword>
+      <keyword>signal</keyword>
+      <keyword>size</keyword>
+      <keyword>sizeRequest</keyword>
+      <keyword>some</keyword>
+      <keyword>sreal</keyword>
+      <keyword>state</keyword>
+      <keyword>stateId</keyword>
+      <keyword>stateRequest</keyword>
+      <keyword>string</keyword>
+      <keyword>subrel</keyword>
+      <keyword>tag</keyword>
+      <keyword>textEditor</keyword>
+      <keyword>time</keyword>
+      <keyword>to</keyword>
+      <keyword>tree</keyword>
+      <keyword>triple</keyword>
+      <keyword>union</keyword>
+      <keyword>user</keyword>
+      <keyword>userid</keyword>
+      <keyword>version</keyword>
+      <keyword>view</keyword>
+      <keyword>void</keyword>
+      <keyword>wconfig</keyword>
+      <keyword>wconfigCom</keyword>
+      <keyword>wday</keyword>
+      <keyword>widget</keyword>
+      <keyword>window</keyword>
+      <keyword>wrapStyle</keyword>
+    </context>
+
+    <context id="boolean" style-ref="boolean">
+      <keyword>true</keyword>
+      <keyword>false</keyword>
+    </context>
+
+    <context id="opal" class="no-spell-check">
+      <include>
+        <context ref="comment"/>
+        <context ref="decimal"/>
+        <context ref="comment-multiline"/>
+        <context ref="close-comment-outside-comment"/>
+        <context ref="string"/>
+        <context ref="module-handler"/>
+        <context ref="keywords"/>
+        <context ref="keysymbol"/>
+        <context ref="types"/>
+        <context ref="boolean"/>
+      </include>
+    </context>
+
+  </definitions>
+</language>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index a83ac8b..7f203c5 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -57,6 +57,7 @@ data/language-specs/ocaml.lang
 data/language-specs/ocl.lang
 data/language-specs/octave.lang
 data/language-specs/ooc.lang
+data/language-specs/opal.lang
 data/language-specs/pascal.lang
 data/language-specs/perl.lang
 data/language-specs/php.lang
diff --git a/tests/testfiles.sh b/tests/testfiles.sh
index dd47ef1..bc0398e 100755
--- a/tests/testfiles.sh
+++ b/tests/testfiles.sh
@@ -15,6 +15,20 @@
 dir="testdir"
 mkdir -p $dir/
 
+cat > $dir/file.impl << EOFEOF
+-- Opal test
+IMPLEMENTATION LeapYear
+
+IMPORT Nat COMPLETELY
+
+DEF leapYear(year) ==
+  IF (year % ("400"!) = 0) THEN true
+  IF (year % ("400"!) |= 0) and (year % 100 = 0) THEN false
+  IF (year % 100 |= 0) and (year % 4 = 0) THEN true
+  IF (year % 4 |= 0) THEN false
+  FI
+EOFEOF
+
 cat > $dir/file.sci << EOFEOF
 // A comment with whites and tabulations 		
 // Scilab editor: http://www.scilab.org/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]