packages feed

illuminate-0.1: Text/Highlighting/Illuminate/RXML.x

{
{-# OPTIONS -w  #-} -- Suppress warnings from alex-generated code
module Text.Highlighting.Illuminate.RXML (lexer) where
import qualified Text.Highlighting.Illuminate.XML as XML
import qualified Text.Highlighting.Illuminate.Ruby as Ruby
}

%wrapper "illuminate"

tokens :-

<erb> {
  ([^ \%] | \n | \% [^ \>])+  { tokenizeWith Ruby.lexer }
  \% \>                       { tok Tag ==> popContext }
}
<0> {
 \< \% \=?                   { tok Tag ==> pushContext (erb, Plain) }
 ([^ \<] | \n | \< [^ \%])+  { tokenizeWith XML.lexer }
}

{
lexer :: Lexer
lexer = Lexer { name = "RXML"
              , aliases = ["rxml"]
              , filenames = ["*.xml.erb","*.rxml"]
              , scan = scanner }
}