Add Iro sample
This commit is contained in:
commit
f9af79686d
188
minizinc.iro
Normal file
188
minizinc.iro
Normal file
@ -0,0 +1,188 @@
|
||||
#################################################################
|
||||
## Iro
|
||||
################################################################
|
||||
##
|
||||
## * Press Ctrl + '+'/'-' To Zoom in
|
||||
## * Press Ctrl + S to save and recalculate...
|
||||
## * Documents are saved to web storage.
|
||||
## * Only one save slot supported.
|
||||
## * Matches cannot span lines.
|
||||
## * Unicode chars must be defined in \u0000 to \uffff format.
|
||||
## * All matches must be contained by a single group ( ... )
|
||||
## * Look behinds not permitted, (?<= or (?<!
|
||||
## * Look forwards are permitted (?= or (?!
|
||||
## * Constants are defined as __my_const = (......)
|
||||
## * The \= format allows unescaped regular expressions
|
||||
## * Constants referenced by match \= $${__my_const}
|
||||
## * Constants can reference other constants
|
||||
## * You are free to delete all the default scopes.
|
||||
## * Twitter : ainslec , Web: http://eeyo.io/iro
|
||||
##
|
||||
################################################################
|
||||
|
||||
name = mysample
|
||||
file_extensions [] = mysample;
|
||||
|
||||
################################################################
|
||||
## Constants
|
||||
################################################################
|
||||
|
||||
__MY_CONSTANT \= (\b[a-z][a-z0-9]*)
|
||||
|
||||
################################################################
|
||||
## Styles
|
||||
################################################################
|
||||
|
||||
styles [] {
|
||||
|
||||
.comment : style {
|
||||
color = light_green
|
||||
italic = true
|
||||
ace_scope = comment
|
||||
textmate_scope = comment
|
||||
pygments_scope = Comment
|
||||
}
|
||||
|
||||
.keyword : style {
|
||||
color = cyan
|
||||
ace_scope = keyword
|
||||
textmate_scope = keyword
|
||||
pygments_scope = Keyword
|
||||
}
|
||||
|
||||
.numeric : style {
|
||||
color = gold
|
||||
ace_scope = constant.numeric
|
||||
textmate_scope = constant.numeric
|
||||
pygments_scope = Number
|
||||
}
|
||||
|
||||
.punctuation : style {
|
||||
color = red_2
|
||||
ace_scope = punctuation
|
||||
textmate_scope = punctuation
|
||||
pygments_scope = Punctuation
|
||||
}
|
||||
|
||||
.text : style {
|
||||
color = brown
|
||||
ace_scope = text
|
||||
textmate_scope = text
|
||||
pygments_scope = String
|
||||
}
|
||||
|
||||
.illegal : style {
|
||||
color = white
|
||||
background_color = red
|
||||
ace_scope = invalid
|
||||
textmate_scope = invalid
|
||||
pygments_scope = Generic.Error
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#################################################
|
||||
## Parse contexts
|
||||
#################################################
|
||||
|
||||
contexts [] {
|
||||
|
||||
##############################################
|
||||
## Main Context - Entry point context
|
||||
##############################################
|
||||
|
||||
main : context {
|
||||
|
||||
: pattern {
|
||||
regex \= $${__MY_CONSTANT}
|
||||
styles [] = .keyword;
|
||||
}
|
||||
|
||||
: include "numeric" ;
|
||||
|
||||
: inline_push {
|
||||
regex \= (\{)
|
||||
styles [] = .punctuation;
|
||||
: pop {
|
||||
regex \= (\})
|
||||
styles [] = .punctuation;
|
||||
}
|
||||
: include "main" ;
|
||||
}
|
||||
|
||||
: pattern {
|
||||
regex \= (;)
|
||||
styles [] = .punctuation;
|
||||
}
|
||||
|
||||
: inline_push {
|
||||
regex \= (\")
|
||||
styles [] = .punctuation;
|
||||
default_style = .text
|
||||
: pop {
|
||||
regex \= (\")
|
||||
styles [] = .punctuation;
|
||||
}
|
||||
}
|
||||
|
||||
: inline_push {
|
||||
regex \= (\()
|
||||
styles [] = .punctuation;
|
||||
: pop {
|
||||
regex \= (\))
|
||||
styles [] = .punctuation;
|
||||
}
|
||||
: include "numeric" ;
|
||||
: pattern {
|
||||
regex \= (,)
|
||||
styles [] = .punctuation;
|
||||
}
|
||||
}
|
||||
|
||||
: include "multi_line_comment" ;
|
||||
|
||||
: pattern {
|
||||
regex \= (//.*)
|
||||
styles [] = .comment;
|
||||
}
|
||||
|
||||
: pattern {
|
||||
regex \= ([^\s])
|
||||
styles [] = .illegal;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#################################################
|
||||
## End of Contexts
|
||||
#################################################
|
||||
|
||||
###########################################
|
||||
## Numeric Context
|
||||
###########################################
|
||||
|
||||
numeric : context {
|
||||
: pattern {
|
||||
regex \= (\b\d+)
|
||||
styles [] = .numeric;
|
||||
}
|
||||
}
|
||||
|
||||
###########################################
|
||||
## Multi Line Comment Context
|
||||
###########################################
|
||||
|
||||
multi_line_comment : context {
|
||||
description = multiline
|
||||
: inline_push {
|
||||
regex \= (/\*)
|
||||
styles [] = .comment;
|
||||
default_style = .comment
|
||||
: pop {
|
||||
regex \= (\*/)
|
||||
styles [] = .comment;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user