#################################################################
## 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                   = hence
file_extensions []     = asm;

################################################################
## Constants
################################################################

################################################################
## Styles
################################################################

styles [] {

.comment : style {
   color                 = grey
   italic                = true
   ace_scope             = comment
   textmate_scope        = comment
   pygments_scope        = Comment
}

.label : style {
   color                 = light_blue
   ace_scope             = keyword
   textmate_scope        = keyword
   pygments_scope        = Keyword
}

.keyword : style {
   color                 = cyan
   ace_scope             = keyword
   textmate_scope        = keyword
   pygments_scope        = Keyword
}

.macro : style {
   color                 = gold
   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                 = light_green
   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          \= (".*")
      styles []       = .text;
   }

   : pattern {
      regex          \= (\S*:)
      styles []       = .label;
   }

   : pattern {
      regex          \= (\.\b\S*)
      styles []        = .macro;
   }
   
   : pattern {
      regex          \= (\b\S*)
      styles []       = .keyword;
   }
   
   
   : pattern {
      regex          \= (;.*)
      styles []       = .comment;
   }
   
   : pattern {
      regex          \= ([^\s])
      styles []       = .illegal;
   }
   
}
   
}
