aat_macros.sed (1065B)
1 #!/bin/sed -f 2 s/^[[:space:]]*FOR[[:space:]]\+\([[:alnum:]]\+\)[[:space:]]\+IN[[:space:]]\+\(.\+\)$/for(last in \2){};for(key in \2){\n\1 = \2[key]; is_last = key == last/ 3 s/^[[:space:]]*ENDFOR[[:space:]]*$/}/ 4 s/^[[:space:]]*IF[[:space:]]\+\(.\+\)$/if(\1) {\n/ 5 s/^[[:space:]]*ELIF[[:space:]]\+\(.\+\)$/} else if(\1) {\n/ 6 s/^[[:space:]]*ELSE[[:space:]]*$/} else {/ 7 s/^[[:space:]]*ENDIF[[:space:]]*$/}/ 8 9 s/^[[:space:]]*@for[[:space:]]\+\([[:alnum:]]\+\)[[:space:]]\+in[[:space:]]\+\(.\+\)$/for(_loop_\1=loop_start("\2", "\1."); loop_iter(_loop_\1);) {/ 10 s/^[[:space:]]*@for[[:space:]]\+\([[:alnum:]]\+\)[[:space:]]\+var[[:space:]]\+\(.\+\)$/for(_loop_\1=loop_start(\2, "\1."); loop_iter(_loop_\1);) {/ 11 s/^[[:space:]]*@endfor[[:space:]]*$/} loop_end()/ 12 s/^[[:space:]]*@if[[:space:]]\+\(.\+\)$/if(get("\1")) {\n/ 13 s/^[[:space:]]*@elif[[:space:]]\+\(.\+\)$/} else if(get("\1")) {\n/ 14 s/^[[:space:]]*@else[[:space:]]*$/} else {/ 15 s/^[[:space:]]*@endif[[:space:]]*$/}/ 16 #s/^[[:space:]]*@let[[:space:]]\+\([a-zA-Z_][a-zA-Z0-9_]*\)[[:space:]]*=[[:space:]]*\(.*\)$/V["\1"] = \2\n/