% -*- slang -*- % This file provides a mode for editing FTC rules. % This mode requires DFA syntax highlighting and jed >= 0.99.14 % % Copyright (C) 2002-2004 Abraham vd Merwe % % Last updated: 2004-09-03 variable ftc = "ftc"; create_syntax_table (ftc); set_syntax_flags (ftc,0x04); % colors set_color ("keyword","brightblue","black"); set_color ("keyword1","yellow","black"); set_color ("operator","brown","black"); set_color ("preprocess","cyan","black"); set_color ("number","green","black"); set_color ("...","lightgray","black"); #ifdef HAS_DFA_SYNTAX %%% DFA_CACHE_BEGIN %%% static define setup_dfa_callback (name) { % DFA color rules dfa_enable_highlight_cache ("ftc.dfa",name); % rates / priorities dfa_define_highlight_rule ("[0-9]+","number",name); dfa_define_highlight_rule ("[0-9]+(kbit|mbit|kbps|mbps|bps)","number",name); % comments dfa_define_highlight_rule ("#.*","comment",name); % commands dfa_define_highlight_rule ("chain|interface|bandwidth|unbounded","keyword",name); dfa_define_highlight_rule ("default|latency","keyword",name); dfa_define_highlight_rule ("filter|match|class|node|exit","keyword",name); dfa_define_highlight_rule ("min-queue-size|qdisc","keyword",name); % parameters dfa_define_highlight_rule ("src|dst|sport|dport|state","operator",name); dfa_define_highlight_rule ("rate|ceil|prio","operator",name); % values dfa_define_highlight_rule ("ip|udp|tcp|icmp|mark","keyword1",name); dfa_define_highlight_rule ("invalid|new|related|established","keyword1",name); dfa_define_highlight_rule ("INPUT|OUTPUT|FORWARD","keyword1",name); dfa_define_highlight_rule ("sfq|fifo|esfq|tbf","keyword1",name); % networks dfa_define_highlight_rule ("[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+(/[0-9]+)?","preprocess",name); % the rest dfa_define_highlight_rule ("[a-zA-Z0-9]([0-9a-zA-Z_]|\\.|-)*","...",name); dfa_build_highlight_table(name); } dfa_set_init_callback (&setup_dfa_callback, "ftc"); %%% DFA_CACHE_END %%% #endif define ftc_mode () { set_mode (ftc,4); use_syntax_table (ftc); }