home *** CD-ROM | disk | FTP | other *** search
- #{{{}}}
- #{{{ BEGIN -> init all parts of the tables,index,..
- BEGIN {
- FS="\t"
- NEWLINE="\n"
- DQ=sprintf("%c",34)
- tab_str=""
- doc_str=""
- ind_str=""
- doc_str=doc_str "Language|foldline comments:\n"
- tab_str=tab_str "l l s\n"
- doc_str=doc_str "|start|end\n"
- tab_str=tab_str "l l l\n"
- doc_str=doc_str "None||\n"
- tab_str=tab_str "l l l\n"
- ind_str=ind_str ".dX None\n"
- replace["LANG_None"]="None"
- }
- #}}}
- #{{{ add a language
- $1!="#" {
- tab_str=tab_str "l l l\n"
- ind_str=ind_str ".dX "
- ind_str=ind_str substr($1,2,length($1)-2)
- ind_str=ind_str "\n"
- replace["LANG_"substr($1,2,length($1)-2)]=$1
- doc_str=doc_str substr($1,2,length($1)-2) "|"
- for (l=2;l<=3;l++) {
- for (i=2;i<length($l);i++) {
- if (substr($l,i,1)==".") {
- doc_str=doc_str "\\\\\\&."
- } else
- if (substr($l,i,2)=="\\\\") {
- doc_str=doc_str "\\\\e"
- i++
- } else
- if (substr($l,i,1)=="\\" && substr($l,i+1,1)==DQ) {
- doc_str=doc_str DQ
- i++
- } else
- doc_str=doc_str substr($l,i,1)
- }
- if (l==2)
- doc_str=doc_str "|"
- else
- doc_str=doc_str "\n"
- }
- }
- #}}}
- #{{{ END -> generate table text and all replace statements
- END {
- # {{{ add user to tbl
- doc_str=doc_str "User|any sequences, up to >>>FOLD_COMMENT_LENGTH<<< characters|\n"
- tab_str=tab_str "l l s\n"
- ind_str=ind_str ".dX User\n"
- # }}}
- # {{{ add inmos to tbl
- doc_str=doc_str "Inmos|a binary format, see below\n"
- tab_str=tab_str "l l s.\n"
- ind_str=ind_str ".dX Inmos\n"
- replace["LANG_Inmos"]="Inmos"
- # }}}
- replace["LANG_LIST"]=sprintf("%s.TS\ntab(|);\n%s%s.TE\n",ind_str,tab_str,doc_str)
- for (s in replace) {
- out=replace[s]
- for (do_replace="";out!="";) {
- # {{{ \n -> \ and \n
- if (substr(out,1,1)=="\n") {
- do_replace=do_replace "\\\n"
- out=substr(out,2)
- continue
- }
- # }}}
- # {{{ / -> \ /
- if (substr(out,1,1)=="/") {
- do_replace=do_replace "\\/"
- out=substr(out,2)
- continue
- }
- # }}}
- # {{{ copy the original
- do_replace=do_replace substr(out,1,1)
- out=substr(out,2)
- # }}}
- }
- print("s/>>>"s"<<</"do_replace"/g")
- }
- }
- #}}}
-