[SCM] Lisaac compiler branch, master, updated. 62f536397a4d09c482b9285dc93ac50177bd94e4

Xavier Oswald x.oswald at free.fr
Thu Nov 6 15:11:46 UTC 2008


The following commit has been merged in the master branch:
commit 62f536397a4d09c482b9285dc93ac50177bd94e4
Author: Xavier Oswald <x.oswald at free.fr>
Date:   Thu Nov 6 16:11:34 2008 +0100

     * Update lisaac syntax coloration file
     * Fix problems with string

diff --git a/editor/vim/syntax/lisaac.vim b/editor/vim/syntax/lisaac.vim
index b41ca29..d980b12 100644
--- a/editor/vim/syntax/lisaac.vim
+++ b/editor/vim/syntax/lisaac.vim
@@ -2,12 +2,9 @@
 " Language:     Lisaac
 " Maintainer:   Xavier Oswald <x.oswald at free.fr>
 " URL:          http://isaacproject.u-strasbg.fr/
-" Last Change:  2007 May 07
+" Last Change:  2008 Nov 06 
 " Filenames:    *.li
 
-" TODO: - Fix the bug when a String begin by \[a-z]
-"       - Fix the String if there are a \" inside the String
-
 " Quit when a syntax file was already loaded
 if !exists("main_syntax")
   if version < 600
@@ -19,108 +16,100 @@ if !exists("main_syntax")
   let main_syntax='li'
 endif
 
-" don't use standard HiLink, it will not work with included syntax files
-if version < 508
-  command! -nargs=+ HiLink hi link <args>
-else
-  command! -nargs=+ HiLink hi def link <args>
-endif
 
-"+--------------------+
 " keyword definitions
-"+--------------------+
+" ===================
 syn keyword liFunction            while while_do if else when elseif then self by to do or downto if_true if_false shrink
-syn keyword liKey                 Section Header Insert Inherit Public Private Mapping Interrupt Right Left Self Old Expanded Strict
-syn keyword liTODO                TODO FIXME not_yet_implemented die_with_code
-
-"+-------------------+
-" Support for String
-"+-------------------+
-syn match   liStringSpecial       contained "\\[a-z]"
-syn match   liString              "\".*\\" contains=liStringSpecial
-syn match   liString              "\\.*\\" contains=liStringSpecial
-syn match   liString              "\\.*\"" contains=liStringSpecial
-syn match   liString              "\".*\"" contains=liStringSpecial
-
-"+----------+
+syn keyword liKey                 Section Header Insert Inherit Public Private Mapping Interrupt Right Left Self Old Expanded Strict 
+syn keyword liSpecial             TODO FIXME DEBUG NOTE not_yet_implemented die_with_code BSBS XOXO JBJB
+
+" Support for String and Char
+" ===========================
+syn match   liStringSpecial       "^\s*\\" 
+syn match   liStringSpecial       "\\$" 
+syn match   liStringSpecial       "\\." 
+syn region  liString              start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=liStringSpecial
+
 " Operators 
-"+----------+
-syn match   liOperator            "<\|>\|*\|/=\|=\|&&\||\|!\|?\|-?\|+?"
+" =========
+syn match   liOperatorAffect      "<-\|:=\|?=\|->"
+syn match   liOperatorCmp         "<\|>\|*\|/=\|=\|&&\||\|!\|?\|-?\|+?"
 syn match   liOperator            "+\|-\|*\|/"
 
-"+-------------------+
-" Quoted expressions
-"+-------------------+
+" Quoted expression
+" =================
 syn match   liExternalExpr        "`[^`\n]*`"
-syn match   liQuotedExpr          "'[^'\n]*'"
+syn region  liQuotedExpr          start=+'+  skip=+\\\\\|\\'+  end=+'+  contains=liStringSpecial
 
-"+---------+
-" Others ;) 
-"+---------+
+" Others 
+" ======
 syn match   liPrototype           "[A-Z][A-Z0-9_]*"
 syn match   liKey                 "Result\(_[0-9]*\)\="
 syn match   liSlot                "^\(\s\|\t\|[(]\)*\(+\|-\)\D"
 syn match   liBlock               "{\|}"
 syn match   liElement             "\(\[\|\]\)"
-syn match   liAssignment          "<-\|:=\|?=\|->"
 syn match   liSymbolDeclaration   "(\|)"
 syn match   liContrat             "^\(\s\|\t\)*\[\(\s\|\t\)*\(\.\.\.\)\=\|\]"
 syn match   liFunction            "\.\w*"
+syn keyword liBoolean             TRUE FALSE BOOLEAN
 
-"+-----------------------------------------------------------------+
 " Support for decimal, real, binary, Hexadecimal and octal numbers
-"+-----------------------------------------------------------------+
+" ================================================================
 " hexa
-syn match   liNumber "\<\(\d\|[ABCDEF]\)\(_\|\d\|[ABCDEF]\)*[hH]\=\>"
+syn match   liNumberHexa    "\<\(\d\|[ABCDEF]\)\(_\|\d\|[ABCDEF]\)*[hH]\=\>"
 
 " binary
-syn match   liNumber "\<[01]\(\(_\|[01]*\)[01]\)*[bB]\=\>"
+syn match   liNumberBinary  "\<[01]\(\(_\|[01]*\)[01]\)*[bB]\=\>"
 
 " decimal, binary, octal
-syn match   liNumber "\<\d\(\(_\|\d*\)\d\)*[dDbBoO]\=\>"
+syn match   liNumberDecimal "\<\d\(\(_\|\d*\)\d\)*[dDbBoO]\=\>"
 
 " real 
-syn match   liNumber "\<\d\(\(_\|\d*\)\d\)*\.\d*\(E-\=\)\=\(\(_\|\d*\)\d\)*[fF]\=\>"
-"syn match   liNumber "-\=\<\(_\|\d\)*\.\(_\|\d\)*\(E-\=\)\=[fF]\=\>"
+syn match   liNumberFloat   "\<\d\(\(_\|\d*\)\d\)*\.\d*\(E-\=\)\=\(\(_\|\d*\)\d\)*[fF]\=\>"
 
-"+---------+
 " Comments 
-"+---------+
-syn region  liLinesComment        start="/\*" end="\*/" contains=liTODO
+" ========
+syn region  liLinesComment        start="/\*" end="\*/" contains=liSpecial
 syn match   liQuotedExprInComment contained "`[^']*'" 
-syn match   liHiddenComment       "//.*" contains=liQuotedExprInComment,liTODO 
+syn match   liHiddenComment       "//.*" contains=liQuotedExprInComment,liSpecial 
 
-"+-------------------------+
-" The default highlighting
-" Coloration
-"+-------------------------+
+" The default highlighting Coloration
+" ===================================
 if version >= 508 || !exists("did_li_syn_inits")
   if version < 508
     let did_li_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
   endif
-  HiLink liLinesComment         Comment
-  HiLink liHiddenComment        Comment
+  HiLink liNumberHexa           Number
+  HiLink liNumberDecimal        Number
+  HiLink liNumberBinary         Number
+  HiLink liNumberFloat          Float
+  HiLink liFunction             Function
+  HiLink liBoolean              Boolean
+  HiLink liKey                  Statement 
+  HiLink liString               String
+  HiLink liStringSpecial        SpecialChar
+  HiLink liSpecial              Todo
+  HiLink liOperatorAffect       Delimiter 
+  HiLink liOperatorCmp          Delimiter
+  HiLink liOperator             Delimiter
   HiLink liExternalExpr         Define
+  HiLink liQuotedExpr           Special 
   HiLink liPrototype            Type
-  HiLink liKey                  Statement 
   HiLink liSlot                 Keyword 
+  HiLink liBlock                Comment
+  HiLink liElement              keyword
   HiLink liSymbolDeclaration    Keyword
-  HiLink liBlock                Keyword
   HiLink liContrat              keyword
-  HiLink liElement              keyword
-  HiLink liAssignment           Delimiter
-  HiLink liOperator             Delimiter
-  HiLink liQuotedExprInComment  SpecialChar 
-  HiLink liQuotedExpr           Special 
-  HiLink liStringSpecial        SpecialChar
-  HiLink liString               String
   HiLink liNumber               Number 
-  HiLink liFunction             Function 
-  HiLink liTODO                 Todo
+  HiLink liLinesComment         Comment
+  HiLink liHiddenComment        Comment
+  HiLink liQuotedExprInComment  SpecialChar 
+  delcommand HiLink
 endif
 
-delcommand HiLink
-
 let b:current_syntax = "li"
 
 if main_syntax == 'li'

-- 
Lisaac compiler



More information about the Lisaac-commits mailing list