def step
case
when @selector && scan(@tokens[:LBRACE])
@selector = false
start_group :normal, matched
when @selector && scan(@tokens[:IMPORT_SYM])
start_group :import, matched
when @selector && scan(@tokens[:PAGE_SYM])
start_group :page, matched
when @selector && scan(@tokens[:MEDIA_SYM])
start_group :media, matched
when @selector && scan(@tokens[:CHARSET_SYM])
start_group :charset, matched
when @selector && scan(@tokens[:HASH])
start_group :normal, matched
when @selector && scan(@tokens[:URI])
start_group :uri, matched
when @selector && scan(@tokens[:IDENT])
if MY_TAGS.include?( matched )
start_group :tag, matched
else
start_group :ident, matched
end
when !@selector && scan(@tokens[:RBRACE])
@selector = true
start_group :normal, matched
when !@selector && scan(@tokens[:FUNCTION])
start_group :function, matched
when !@selector && scan(@tokens[:EMS])
start_group :ems, matched
when !@selector && scan(@tokens[:EXS])
start_group :exs, matched
when !@selector && scan(@tokens[:LENGTH])
start_group :length, matched
when !@selector && scan(@tokens[:ANGLE])
start_group :angle, matched
when !@selector && scan(@tokens[:TIME])
start_group :time, matched
when !@selector && scan(@tokens[:FREQ])
start_group :freq, matched
when !@selector && scan(@tokens[:PERCENTAGE])
start_group :percentage, matched
when !@selector && scan(@tokens[:DIMENSION])
start_group :dimension, matched
when !@selector && scan(@tokens[:NUMBER])
start_group :number, matched
when !@selector && scan(@tokens[:HEXNUM])
start_group :number, matched
when !@selector && scan(@tokens[:IMPORTANT_SYM])
start_group :important, matched
when !@selector && scan(@tokens[:IDENT])
if CSS21_PROPERTIES.include?( matched )
start_group :property, matched
elsif CSS21_KEYWORDS.include?( matched )
start_group :keyword, matched
else
start_group :ident, matched
end
when scan(@tokens[:S])
start_group :normal, matched
when scan(@tokens[:COMMENT])
start_group :comment, matched
when scan(@tokens[:STRING])
start_group :string, matched
when scan(@tokens[:CDO])
start_group :cdo, matched
when scan(@tokens[:CDC])
start_group :cdc, matched
when scan(@tokens[:INVALID])
start_group :invalid, matched
else
start_group :normal, scan(/./x)
end
end