BEGIN { gsub(/[ \t\r\n]+$/,"", FILENAME); } { if (match($0, /class ([a-zA-Z]*)/, arr)) { class_name = arr[1]; } # print the entire line print; if (length(class_name) == 0) { # next; # skip if no classname } extension_name = substr(FILENAME,length(FILENAME)-2); if (extension_name == ".ts") { # typescript if (match( $0, /.*public ([^\(]*)\(([^\)]*)\):/, arr )) { # method method_name = arr[1] if (method_name ~ /^get/) { next; # ignore get method } printf " console.log( '"class_name"', '"method_name"'" num_params = split(arr[2], params, ","); for (i=1 ; i <= num_params ; i++) { if (match(params[i],/([^:]*):/,param)){ printf ", " param[1] } } print ");" } if (match( $0, /public set ([^\()]*)\(([^\)]*)\)/, arr)) { # setter setter_name = arr[1] value_name = arr[2] printf " console.log( '"class_name"', 'set "setter_name"'," if (match(value_name,/([^:]*):/,param)){ printf param[1]; } print ");" } } }