[gtksourceview] Add cobol lang file.
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Add cobol lang file.
- Date: Wed, 24 Nov 2010 17:11:21 +0000 (UTC)
commit 7a66e39041776bacaa7a151cc7510e0612173dec
Author: Fernando Brito <email fernandobrito com>
Date: Wed Nov 24 18:09:45 2010 +0100
Add cobol lang file.
data/language-specs/Makefile.am | 1 +
data/language-specs/cobol.lang | 455 ++++++++++++++++++++++++++++++++++++++
data/language-specs/testfiles.sh | 28 +++
3 files changed, 484 insertions(+), 0 deletions(-)
---
diff --git a/data/language-specs/Makefile.am b/data/language-specs/Makefile.am
index 81ba499..5b6f80b 100644
--- a/data/language-specs/Makefile.am
+++ b/data/language-specs/Makefile.am
@@ -12,6 +12,7 @@ LANGUAGES = \
cg.lang \
chdr.lang \
cmake.lang \
+ cobol.lang \
cpp.lang \
csharp.lang \
css.lang \
diff --git a/data/language-specs/cobol.lang b/data/language-specs/cobol.lang
new file mode 100644
index 0000000..9a3b56c
--- /dev/null
+++ b/data/language-specs/cobol.lang
@@ -0,0 +1,455 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Authors: Fernando Brito
+ Copyright (C) 2010 Fernando Brito <email fernandobrito com>
+
+ Credits:
+ Based on prolog.lang by Ignacio Casal Quinteiro <icq gnome org>
+ Cobol keywords taken from cobol.vim by Tim Pope <vimNOSPAM tpope info>
+
+ 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="cobol" _name="Cobol" version="2.0" _section="Sources">
+ <metadata>
+ <property name="globs">*.cbl;*.cob</property>
+ <property name="line-comment-start">*</property>
+ </metadata>
+
+ <styles>
+ <style id="comment" _name="Comment" map-to="def:comment"/>
+ <style id="statement" _name="Statement" map-to="def:statement"/>
+ <style id="variable" _name="Variable" map-to="def:type"/>
+ <style id="keyword" _name="Keyword" map-to="def:keyword"/>
+ <style id="constant" _name="Constant" map-to="def:constant"/>
+ <style id="string" _name="String" map-to="def:string"/>
+ <style id="number" _name="Number" map-to="def:decimal"/>
+ <style id="operator" _name="Operator" map-to="def:operator"/>
+ <style id="error" _name="Error" map-to="def:error"/>
+ </styles>
+
+ <definitions>
+ <context id="line-comment" style-ref="comment" end-at-line-end="true" class="comment" class-disabled="no-spell-check">
+ <start>^\s{0,6}\*</start>
+ <include>
+ <context ref="def:in-comment"/>
+ </include>
+ </context>
+
+ <context id="bad-ident" style-ref="error" end-at-line-end="true" class="error" class-disabled="no-spell-check">
+ <start>^\s{0,6}\w</start> <!-- everything must start at the 8th column, except the line comment, that is indicated ONLY by a * in the 7th -->
+ </context>
+
+ <context id="bad-long-line" style-ref="error">
+ <match>.{74,}</match> <!-- http://docs.hp.com/en/65/books/lrintr.htm -->
+ </context>
+
+ <context id="bad-comment-line" style-ref="error" end-at-line-end="true" class="error" class-disabled="no-spell-check">
+ <start>(\*)(?=(?:[^"']|["|'][^"']*")*$)</start> <!-- Credits: http://stackoverflow.com/questions/632475/regex-to-pick-commas-outside-of-quotes -->
+ </context>
+
+ <context id="variable" style-ref="variable">
+ <match>\b([A-Za-z0-9_]*)\b</match>
+ </context>
+
+ <context id="string-double-quote" style-ref="string" end-at-line-end="true" class="string" class-disabled="no-spell-check">
+ <start>"</start>
+ <end>"</end>
+ </context>
+
+ <context id="string-single-quote" style-ref="string" end-at-line-end="true" class="string" class-disabled="no-spell-check">
+ <start>'</start>
+ <end>'</end>
+ </context>
+
+ <context id="number" style-ref="number">
+ <match extended="true">
+ \b[0-9]+(\.[0-9]+)?\b
+ </match>
+ </context>
+
+ <context id="constant" style-ref="constant">
+ <keyword>SPACE</keyword>
+ <keyword>SPACES</keyword>
+ <keyword>NULL</keyword>
+ <keyword>ZERO</keyword>
+ <keyword>ZEROES</keyword>
+ <keyword>ZEROS</keyword>
+ <keyword>LOW-VALUES</keyword>
+ <keyword>LOW-VALUE</keyword>
+ <keyword>HIGH-VALUES</keyword>
+ <keyword>HIGH-VALUE</keyword>
+ <keyword>QUOTE</keyword>
+ <keyword>QUOTES</keyword>
+ </context>
+
+ <context id="keyword" style-ref="keyword">
+ <keyword>ACCEPT</keyword>
+ <keyword>ACCESS</keyword>
+ <keyword>ADD</keyword>
+ <keyword>ADDRESS</keyword>
+ <keyword>ADVANCING</keyword>
+ <keyword>AFTER</keyword>
+ <keyword>ALPHABET</keyword>
+ <keyword>ALPHABETIC</keyword>
+ <keyword>ALPHABETIC-LOWER</keyword>
+ <keyword>ALPHABETIC-UPPER</keyword>
+ <keyword>ALPHANUMERIC</keyword>
+ <keyword>ALPHANUMERIC-EDITED</keyword>
+ <keyword>ALS</keyword>
+ <keyword>ALTERNATE</keyword>
+ <keyword>AND</keyword>
+ <keyword>ANY</keyword>
+ <keyword>ARE</keyword>
+ <keyword>AREA</keyword>
+ <keyword>AREAS</keyword>
+ <keyword>ASCENDING</keyword>
+ <keyword>ASSIGN</keyword>
+ <keyword>AT</keyword>
+ <keyword>AUTHOR</keyword>
+ <keyword>BEFORE</keyword>
+ <keyword>BINARY</keyword>
+ <keyword>BLANK</keyword>
+ <keyword>BLOCK</keyword>
+ <keyword>BOTTOM</keyword>
+ <keyword>BY</keyword>
+ <keyword>CANCEL</keyword>
+ <keyword>CBLL</keyword>
+ <keyword>CD</keyword>
+ <keyword>CF</keyword>
+ <keyword>CH</keyword>
+ <keyword>CHARACTER</keyword>
+ <keyword>CHARACTERS</keyword>
+ <keyword>CLASS</keyword>
+ <keyword>CLOCK-UNITS</keyword>
+ <keyword>CLOSE</keyword>
+ <keyword>COBOL</keyword>
+ <keyword>CODE</keyword>
+ <keyword>CODE-SET</keyword>
+ <keyword>COLLATING</keyword>
+ <keyword>COLUMN</keyword>
+ <keyword>COMMA</keyword>
+ <keyword>COMMON</keyword>
+ <keyword>COMMUNICATIONS</keyword>
+ <keyword>COMPUTATIONAL</keyword>
+ <keyword>COMPUTE</keyword>
+ <keyword>CONTENT</keyword>
+ <keyword>CONTINUE</keyword>
+ <keyword>CONTROL</keyword>
+ <keyword>CONVERTING</keyword>
+ <keyword>CORR</keyword>
+ <keyword>CORRESPONDING</keyword>
+ <keyword>COUNT</keyword>
+ <keyword>CURRENCY</keyword>
+ <keyword>DATE</keyword>
+ <keyword>DATE-COMPILED</keyword>
+ <keyword>DATE-WRITTEN</keyword>
+ <keyword>DAY</keyword>
+ <keyword>DAY-OF-WEEK</keyword>
+ <keyword>DE</keyword>
+ <keyword>DEBUG-CONTENTS</keyword>
+ <keyword>DEBUG-ITEM</keyword>
+ <keyword>DEBUG-LINE</keyword>
+ <keyword>DEBUG-NAME</keyword>
+ <keyword>DEBUG-SUB-1</keyword>
+ <keyword>DEBUG-SUB-2</keyword>
+ <keyword>DEBUG-SUB-3</keyword>
+ <keyword>DEBUGGING</keyword>
+ <keyword>DECIMAL-POINT</keyword>
+ <keyword>DELARATIVES</keyword>
+ <keyword>DELETE</keyword>
+ <keyword>DELIMITED</keyword>
+ <keyword>DELIMITER</keyword>
+ <keyword>DEPENDING</keyword>
+ <keyword>DESCENDING</keyword>
+ <keyword>DESTINATION</keyword>
+ <keyword>DETAIL</keyword>
+ <keyword>DISABLE</keyword>
+ <keyword>DISPLAY</keyword>
+ <keyword>DIVIDE</keyword>
+ <keyword>DIVISION</keyword>
+ <keyword>DOWN</keyword>
+ <keyword>DUPLICATES</keyword>
+ <keyword>DYNAMIC</keyword>
+ <keyword>EGI</keyword>
+ <keyword>ELSE</keyword>
+ <keyword>EMI</keyword>
+ <keyword>ENABLE</keyword>
+ <keyword>END-ADD</keyword>
+ <keyword>END-COMPUTE</keyword>
+ <keyword>END-DELETE</keyword>
+ <keyword>END-DIVIDE</keyword>
+ <keyword>END-EVALUATE</keyword>
+ <keyword>END-MULTIPLY</keyword>
+ <keyword>END-OF-PAGE</keyword>
+ <keyword>END-READ</keyword>
+ <keyword>END-RECEIVE</keyword>
+ <keyword>END-RETURN</keyword>
+ <keyword>END-REWRITE</keyword>
+ <keyword>END-SEARCH</keyword>
+ <keyword>END-START</keyword>
+ <keyword>END-STRING</keyword>
+ <keyword>END-SUBTRACT</keyword>
+ <keyword>END-UNSTRING</keyword>
+ <keyword>END-WRITE</keyword>
+ <keyword>EQUAL</keyword>
+ <keyword>ERROR</keyword>
+ <keyword>ESI</keyword>
+ <keyword>EVALUATE</keyword>
+ <keyword>EVERY</keyword>
+ <keyword>EXCEPTION</keyword>
+ <keyword>EXIT</keyword>
+ <keyword>EXTEND</keyword>
+ <keyword>EXTERNAL</keyword>
+ <keyword>FALSE</keyword>
+ <keyword>FD</keyword>
+ <keyword>FILLER</keyword>
+ <keyword>FINAL</keyword>
+ <keyword>FIRST</keyword>
+ <keyword>FOOTING</keyword>
+ <keyword>FOR</keyword>
+ <keyword>FROM</keyword>
+ <keyword>GENERATE</keyword>
+ <keyword>GIVING</keyword>
+ <keyword>GLOBAL</keyword>
+ <keyword>GREATER</keyword>
+ <keyword>GROUP</keyword>
+ <keyword>HEADING</keyword>
+ <keyword>I-O</keyword>
+ <keyword>IN</keyword>
+ <keyword>INDEX</keyword>
+ <keyword>INDEXED</keyword>
+ <keyword>INDICATE</keyword>
+ <keyword>INITIAL</keyword>
+ <keyword>INITIALIZE</keyword>
+ <keyword>INITIATE</keyword>
+ <keyword>INPUT</keyword>
+ <keyword>INSPECT</keyword>
+ <keyword>INSTALLATION</keyword>
+ <keyword>INTO</keyword>
+ <keyword>IS</keyword>
+ <keyword>JUST</keyword>
+ <keyword>JUSTIFIED</keyword>
+ <keyword>KEY</keyword>
+ <keyword>LABEL</keyword>
+ <keyword>LAST</keyword>
+ <keyword>LEADING</keyword>
+ <keyword>LEFT</keyword>
+ <keyword>LENGTH</keyword>
+ <keyword>LOCK</keyword>
+ <keyword>MEMORY</keyword>
+ <keyword>MERGE</keyword>
+ <keyword>MESSAGE</keyword>
+ <keyword>MODE</keyword>
+ <keyword>MODULES</keyword>
+ <keyword>MOVE</keyword>
+ <keyword>MULTIPLE</keyword>
+ <keyword>MULTIPLY</keyword>
+ <keyword>NATIVE</keyword>
+ <keyword>NEGATIVE</keyword>
+ <keyword>NEXT</keyword>
+ <keyword>NO</keyword>
+ <keyword>NOT</keyword>
+ <keyword>NUMBER</keyword>
+ <keyword>NUMERIC</keyword>
+ <keyword>NUMERIC-EDITED</keyword>
+ <keyword>OCCURS</keyword>
+ <keyword>OF</keyword>
+ <keyword>OFF</keyword>
+ <keyword>OMITTED</keyword>
+ <keyword>ON</keyword>
+ <keyword>OPEN</keyword>
+ <keyword>OPTIONAL</keyword>
+ <keyword>OR</keyword>
+ <keyword>ORDER</keyword>
+ <keyword>ORGANIZATION</keyword>
+ <keyword>OTHER</keyword>
+ <keyword>OUTPUT</keyword>
+ <keyword>OVERFLOW</keyword>
+ <keyword>PACKED-DECIMAL</keyword>
+ <keyword>PADDING</keyword>
+ <keyword>PAGE</keyword>
+ <keyword>PAGE-COUNTER</keyword>
+ <keyword>PF</keyword>
+ <keyword>PH</keyword>
+ <keyword>PIC</keyword>
+ <keyword>PICTURE</keyword>
+ <keyword>PLUS</keyword>
+ <keyword>POINTER</keyword>
+ <keyword>POSITION</keyword>
+ <keyword>POSITIVE</keyword>
+ <keyword>PRINTING</keyword>
+ <keyword>PROCEDURES</keyword>
+ <keyword>PROCEDD</keyword>
+ <keyword>PROGRAM-ID</keyword>
+ <keyword>PROGRAM</keyword>
+ <keyword>PURGE</keyword>
+ <keyword>QUEUE</keyword>
+ <keyword>RANDOM</keyword>
+ <keyword>RD</keyword>
+ <keyword>READ</keyword>
+ <keyword>RECEIVE</keyword>
+ <keyword>RECORD</keyword>
+ <keyword>RECORDS</keyword>
+ <keyword>REDEFINES</keyword>
+ <keyword>REEL</keyword>
+ <keyword>REFERENCE</keyword>
+ <keyword>REFERENCES</keyword>
+ <keyword>RELATIVE</keyword>
+ <keyword>RELEASE</keyword>
+ <keyword>REMAINDER</keyword>
+ <keyword>REMOVAL</keyword>
+ <keyword>REPLACE</keyword>
+ <keyword>REPLACING</keyword>
+ <keyword>REPORT</keyword>
+ <keyword>REPORTING</keyword>
+ <keyword>REPORTS</keyword>
+ <keyword>RERUN</keyword>
+ <keyword>RESERVE</keyword>
+ <keyword>RESET</keyword>
+ <keyword>RETURN</keyword>
+ <keyword>RETURNING</keyword>
+ <keyword>REVERSED</keyword>
+ <keyword>REWIND</keyword>
+ <keyword>REWRITE</keyword>
+ <keyword>RF</keyword>
+ <keyword>RH</keyword>
+ <keyword>RIGHT</keyword>
+ <keyword>ROUNDED</keyword>
+ <keyword>RUN</keyword>
+ <keyword>SAME</keyword>
+ <keyword>SD</keyword>
+ <keyword>SEARCH</keyword>
+ <keyword>SECTION</keyword>
+ <keyword>SECURITY</keyword>
+ <keyword>SEGMENT-LIMITED</keyword>
+ <keyword>SEGMENT</keyword>
+ <keyword>SELECT</keyword>
+ <keyword>SEND</keyword>
+ <keyword>SENTENCE</keyword>
+ <keyword>SEPARATE</keyword>
+ <keyword>SEQUENCE</keyword>
+ <keyword>SEQUENTIAL</keyword>
+ <keyword>SET</keyword>
+ <keyword>SIGN</keyword>
+ <keyword>SIZE</keyword>
+ <keyword>SORT-MERGE</keyword>
+ <keyword>SORT</keyword>
+ <keyword>SOURCE-COMPUTER</keyword>
+ <keyword>SOURCE</keyword>
+ <keyword>STANDARD</keyword>
+ <keyword>STANDARD-1</keyword>
+ <keyword>STANDARD-2</keyword>
+ <keyword>START</keyword>
+ <keyword>STATUS</keyword>
+ <keyword>STOP</keyword>
+ <keyword>STRING</keyword>
+ <keyword>SUB-QUEUE-1</keyword>
+ <keyword>SUB-QUEUE-2</keyword>
+ <keyword>SUB-QUEUE-3</keyword>
+ <keyword>SUBTRACT</keyword>
+ <keyword>SUM</keyword>
+ <keyword>SUPPRESS</keyword>
+ <keyword>SYMBOLIC</keyword>
+ <keyword>SYNC</keyword>
+ <keyword>SYNCHRONIZED</keyword>
+ <keyword>TABLE</keyword>
+ <keyword>TALLYING</keyword>
+ <keyword>TAPE</keyword>
+ <keyword>TERMINAL</keyword>
+ <keyword>TERMINATE</keyword>
+ <keyword>TEST</keyword>
+ <keyword>TEXT</keyword>
+ <keyword>THAN</keyword>
+ <keyword>THEN</keyword>
+ <keyword>THROUGH</keyword>
+ <keyword>THRU</keyword>
+ <keyword>TIME</keyword>
+ <keyword>TIMES</keyword>
+ <keyword>TO</keyword>
+ <keyword>TOP</keyword>
+ <keyword>TRAILING</keyword>
+ <keyword>TRUE</keyword>
+ <keyword>TYPE</keyword>
+ <keyword>UNIT</keyword>
+ <keyword>UNSTRING</keyword>
+ <keyword>UNTIL</keyword>
+ <keyword>UP</keyword>
+ <keyword>UPON</keyword>
+ <keyword>USAGE</keyword>
+ <keyword>USE</keyword>
+ <keyword>USING</keyword>
+ <keyword>VALUE</keyword>
+ <keyword>VALUES</keyword>
+ <keyword>VARYING</keyword>
+ <keyword>WHEN</keyword>
+ <keyword>WITH</keyword>
+ <keyword>WORDS</keyword>
+ <keyword>WRITE</keyword>
+ <keyword>OBJECT-COMPUTER</keyword>
+ <keyword>SPECIAL-NAMES</keyword>
+ <keyword>FILE-CONTROL</keyword>
+ <keyword>I-O-CONTROL</keyword>
+ </context>
+
+ <context id="section-name" style-ref="keyword">
+ <keyword>CONFIGURATION</keyword>
+ <keyword>INPUT-OUTPUT</keyword>
+ <keyword>FILE</keyword>
+ <keyword>WORKING-STORAGE</keyword>
+ <keyword>LOCAL-STORAGE</keyword>
+ <keyword>LINKAGE</keyword>
+ </context>
+
+ <context id="division-name" style-ref="keyword">
+ <keyword>IDENTIFICATION</keyword>
+ <keyword>ENVIRONMENT</keyword>
+ <keyword>DATA</keyword>
+ <keyword>PROCEDURE</keyword>
+ </context>
+
+ <context id="call" style-ref="statement">
+ <keyword>END-CALL</keyword>
+ <keyword>CALL</keyword>
+ <keyword>CANCEL</keyword>
+ <keyword>GOBACK</keyword>
+ <keyword>END-PERFORM</keyword>
+ <keyword>PERFORM</keyword>
+ <keyword>INVOKE</keyword>
+ <keyword>END-IF</keyword>
+ <keyword>IF</keyword>
+ </context>
+
+ <context id="cobol" class="no-spell-check">
+ <include>
+ <context ref="constant"/>
+ <context ref="keyword"/>
+ <context ref="call"/>
+ <context ref="division-name"/>
+ <context ref="section-name"/>
+ <context ref="line-comment"/>
+ <context ref="bad-ident"/>
+ <context ref="bad-comment-line"/>
+ <context ref="bad-long-line"/>
+ <context ref="string-double-quote"/>
+ <context ref="string-single-quote"/>
+ <context ref="number"/>
+ <context ref="variable"/>
+ </include>
+ </context>
+
+ </definitions>
+</language>
diff --git a/data/language-specs/testfiles.sh b/data/language-specs/testfiles.sh
index f27347c..93a64dd 100755
--- a/data/language-specs/testfiles.sh
+++ b/data/language-specs/testfiles.sh
@@ -15,6 +15,34 @@
dir="testdir"
mkdir -p $dir/
+cat > $dir/file.cob << EOFEOF
+ IDENTIFICATION DIVISION.
+ PROGRAM-ID. Age.
+ AUTHOR. Fernando Brito.
+
+ DATA DIVISION.
+ WORKING-STORAGE SECTION.
+ 01 Age PIC 99 VALUE ZEROS.
+ 01 Had_Birthday PIC X VALUE SPACES.
+ 01 Current_Year PIC 9999 VALUE 2010.
+ 01 Result PIC 9999 VALUE ZEROS.
+
+ PROCEDURE DIVISION.
+ DISPLAY "==> How old are you?".
+ ACCEPT Age
+ DISPLAY "==> Had you already had birthday this year (y or n)?".
+ ACCEPT Had_Birthday
+
+ SUBTRACT Current_Year FROM Age GIVING Result
+
+ IF Had_Birthday = "n" THEN
+ SUBTRACT 1 FROM Result GIVING Result
+ END-IF
+
+ DISPLAY "Let me guess... "" You were born in ", Result
+ STOP RUN.
+EOFEOF
+
cat > $dir/file.svh << EOFEOF
class my_class extends some_class;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]