Archived
1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
iro-mzn/minizinc.iro
2018-02-05 17:38:13 +11:00

153 lines
3.8 KiB
Plaintext

#################################################################
## MiniZinc
################################################################
##
## TODO: Add description
##
################################################################
name = MiniZinc
file_extensions [] = mzn;
################################################################
## 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 {
#######################################
## Comment Patterns
#######################################
: include "multi_line_comment";
: pattern {
regex \= (//.*)
styles [] = .comment;
}
#######################################
## Literal Patterns
#######################################
: include "numeric";
}
#################################################
## End of Contexts
#################################################
###########################################
## Numeric Context
###########################################
numeric : context {
: pattern {
description = integer number
regex \= (\b\d+)
styles [] = .numeric;
}
: pattern {
description = octal integer number
regex \= (\b0o[0-7]+)
styles [] = .numeric;
}
: pattern {
description = hexadecimal number
regex \= (\b0x[0-9A-Fa-f]+)
styles [] = .numeric;
}
: pattern {
description = hexadecimal number
regex \= (\b0x[0-9A-Fa-f]+)
styles [] = .numeric;
}
: pattern {
description = floating point number
regex \= (\b\d+(?:.\d+|(?:.\d+)?[Ee][-+]?\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;
}
}
}
}