$ ecmascript // Escape a unicode string into java edible string literal function escape_string_literal(val) { var ret = ''; for ( var i = 0; i < val.length; i++ ) { if ( val.charAt(i) == '\n' ) { ret += '\\n'; } else if ( val.charAt(i) == '\r' ) { ret += '\\r'; } else if ( val.charAt(i) == '"' ) { ret += '\\"'; } else if ( val.charAt(i) == '\\' ) { ret += '\\\\'; } else if ( val.charCodeAt(i) == 0 ) { ret += '\\0'; } else if ( val.charCodeAt(i) < 0x20 || val.charCodeAt(i) > 0x7f || val.charAt(i) == '"' || val.charAt(i) == '\\') { var str = val.charCodeAt(i).toString(16); while ( str.length < 4 ) str = '0' + str; ret += '\\u' + str; } else { ret += val.charAt(i); } } return ret; } $ end ecmascript $ param dest_dir='.', build_system={false} $ param basedir=$dest_dir $ include 'nodes.xss' $ include 'tokens.xss' $ include 'prods.xss' $ include 'analysis.xss' $ include 'lexer.xss' $ include 'parser.xss' $ include 'utils.xss' $ call make_nodes() $ call make_tokens() $ call make_prods() $ call make_analysis() $ call make_lexer() $ call make_parser() $ if $build_system $ call make_utils() $ end