# Fancy "sed" highlighter # Bugs: delimiter should be ignored in [...] # # it would be nice if this did more correct # error checking for the sed programmer - =Idle =Comment green =String cyan =Escape bold cyan =Bad red =Keyword bold =Delimiter magenta # Zero address commands: # : } # Zero or one address: = a i q r # Range address: { b t c d D h H g G x l n N p P s w y :idle Idle * cmd noeat " " idle "\n" idle "0-9" first_addr recolor=-1 "$" first_eof recolor=-1 "/" first_regex_c recolor=-1 :first_eof String * first_addr_done noeat :first_regex_c Delimiter * first_regex noeat :first_regex String * first_regex "\\" first_regex_quote recolor=-1 "/" first_regex_e recolor=-1 :first_regex_e Delimiter * first_addr_done noeat :first_regex_quote Escape * first_regex :first_addr String * first_addr_done noeat "0-9" first_addr :first_addr_done Idle * cmd noeat "," second_addr_start :second_addr_start Idle * bad noeat "0-9" second_addr recolor=-1 "$" second_eof recolor=-1 "/" second_regex recolor=-1 :second_eof String * cmd noeat :second_regex String * second_regex "/" cmd :second_addr String * cmd noeat "0-9" second_addr :bad Bad * bad "\n" idle :cmd Delimiter * the_cmd noeat " " cmd "!" the_cmd :the_cmd Idle * bad noeat " " the_cmd ";" next noeat "#" comment recolor=-1 "sy" accepts recolor=-1 "{" accepto recolor=-1 "aic" accept recolor=-1 "=:}rqbtdDhHgGxlnNpPw" acceptc recolor=-1 :accepto Keyword * idle noeat :accept Keyword * next noeat :acceptc Keyword * nextallow noeat :accepts Keyword * subst noeat :subst Delimiter * subst_rest save_c :subst_rest String * subst_rest & subst_rest_2_c recolor=-1 "\\" subst_rest_quote recolor=-1 :subst_rest_quote Escape * subst_rest :subst_rest_2_c Delimiter * subst_rest_2 noeat :subst_rest_2 String * subst_rest_2 & next_c recolor=-1 "\\" subst_rest_2_quote recolor=-1 :next_c Delimiter * nextallow noeat :subst_rest_2_quote Escape * subst_rest_2 :nextallow Idle * nextallow "\n" idle ";" idle "#" comment recolor=-1 :next Idle * next "\n" idle "\\" continue :continue Idle * next :comment Comment * comment "\n" idle