[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