all: remove remaining broken escape sequences
parent
966b95ca4e
commit
c27818e247
|
@ -804,10 +804,10 @@ fn (mut g Gen) stmt(node ast.Stmt) {
|
||||||
g.write_v_source_line_info(node.pos)
|
g.write_v_source_line_info(node.pos)
|
||||||
if node.label.len > 0 {
|
if node.label.len > 0 {
|
||||||
if node.kind == .key_break {
|
if node.kind == .key_break {
|
||||||
g.writeln('goto $node.label\__break;')
|
g.writeln('goto ${node.label}__break;')
|
||||||
} else {
|
} else {
|
||||||
// assert node.kind == .key_continue
|
// assert node.kind == .key_continue
|
||||||
g.writeln('goto $node.label\__continue;')
|
g.writeln('goto ${node.label}__continue;')
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// continue or break
|
// continue or break
|
||||||
|
@ -945,11 +945,11 @@ fn (mut g Gen) stmt(node ast.Stmt) {
|
||||||
g.is_vlines_enabled = true
|
g.is_vlines_enabled = true
|
||||||
g.stmts(node.stmts)
|
g.stmts(node.stmts)
|
||||||
if node.label.len > 0 {
|
if node.label.len > 0 {
|
||||||
g.writeln('$node.label\__continue: {}')
|
g.writeln('${node.label}__continue: {}')
|
||||||
}
|
}
|
||||||
g.writeln('}')
|
g.writeln('}')
|
||||||
if node.label.len > 0 {
|
if node.label.len > 0 {
|
||||||
g.writeln('$node.label\__break: {}')
|
g.writeln('${node.label}__break: {}')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ast.ForInStmt {
|
ast.ForInStmt {
|
||||||
|
@ -974,11 +974,11 @@ fn (mut g Gen) stmt(node ast.Stmt) {
|
||||||
g.is_vlines_enabled = true
|
g.is_vlines_enabled = true
|
||||||
g.stmts(node.stmts)
|
g.stmts(node.stmts)
|
||||||
if node.label.len > 0 {
|
if node.label.len > 0 {
|
||||||
g.writeln('\t$node.label\__continue: {}')
|
g.writeln('\t${node.label}__continue: {}')
|
||||||
}
|
}
|
||||||
g.writeln('}')
|
g.writeln('}')
|
||||||
if node.label.len > 0 {
|
if node.label.len > 0 {
|
||||||
g.writeln('$node.label\__break: {}')
|
g.writeln('${node.label}__break: {}')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ast.GlobalDecl {
|
ast.GlobalDecl {
|
||||||
|
@ -1178,21 +1178,21 @@ fn (mut g Gen) for_in(it ast.ForInStmt) {
|
||||||
g.write('$atmp_styp $atmp = ')
|
g.write('$atmp_styp $atmp = ')
|
||||||
g.expr(it.cond)
|
g.expr(it.cond)
|
||||||
g.writeln(';')
|
g.writeln(';')
|
||||||
g.writeln('for (int $idx = 0; $idx < $atmp\.key_values.len; ++$idx) {')
|
g.writeln('for (int $idx = 0; $idx < ${atmp}.key_values.len; ++$idx) {')
|
||||||
g.writeln('\tif ($atmp\.key_values.keys[$idx].str == 0) {continue;}')
|
g.writeln('\tif (${atmp}.key_values.keys[$idx].str == 0) {continue;}')
|
||||||
if it.key_var != '_' {
|
if it.key_var != '_' {
|
||||||
key_styp := g.typ(it.key_type)
|
key_styp := g.typ(it.key_type)
|
||||||
key := c_name(it.key_var)
|
key := c_name(it.key_var)
|
||||||
// TODO: analyze whether it.key_type has a .clone() method and call .clone() for all types:
|
// TODO: analyze whether it.key_type has a .clone() method and call .clone() for all types:
|
||||||
if it.key_type == table.string_type {
|
if it.key_type == table.string_type {
|
||||||
g.writeln('\t$key_styp $key = /*kkkk*/ string_clone($atmp\.key_values.keys[$idx]);')
|
g.writeln('\t$key_styp $key = /*key*/ string_clone(${atmp}.key_values.keys[$idx]);')
|
||||||
} else {
|
} else {
|
||||||
g.writeln('\t$key_styp $key = /*kkkk*/ $atmp\.key_values.keys[$idx];')
|
g.writeln('\t$key_styp $key = /*key*/ ${atmp}.key_values.keys[$idx];')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if it.val_var != '_' {
|
if it.val_var != '_' {
|
||||||
val_sym := g.table.get_type_symbol(it.val_type)
|
val_sym := g.table.get_type_symbol(it.val_type)
|
||||||
valstr := '(void*)($atmp\.key_values.values + $idx * (u32)($atmp\.value_bytes))'
|
valstr := '(void*)(${atmp}.key_values.values + $idx * (u32)(${atmp}.value_bytes))'
|
||||||
if val_sym.kind == .function {
|
if val_sym.kind == .function {
|
||||||
g.write('\t')
|
g.write('\t')
|
||||||
g.write_fn_ptr_decl(val_sym.info as table.FnType, c_name(it.val_var))
|
g.write_fn_ptr_decl(val_sym.info as table.FnType, c_name(it.val_var))
|
||||||
|
@ -1207,11 +1207,11 @@ fn (mut g Gen) for_in(it ast.ForInStmt) {
|
||||||
// g.writeln('string_free(&$key);')
|
// g.writeln('string_free(&$key);')
|
||||||
}
|
}
|
||||||
if it.label.len > 0 {
|
if it.label.len > 0 {
|
||||||
g.writeln('\t$it.label\__continue: {}')
|
g.writeln('\t${it.label}__continue: {}')
|
||||||
}
|
}
|
||||||
g.writeln('}')
|
g.writeln('}')
|
||||||
if it.label.len > 0 {
|
if it.label.len > 0 {
|
||||||
g.writeln('\t$it.label\__break: {}')
|
g.writeln('\t${it.label}__break: {}')
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
} else if it.cond_type.has_flag(.variadic) {
|
} else if it.cond_type.has_flag(.variadic) {
|
||||||
|
@ -1240,11 +1240,11 @@ fn (mut g Gen) for_in(it ast.ForInStmt) {
|
||||||
}
|
}
|
||||||
g.stmts(it.stmts)
|
g.stmts(it.stmts)
|
||||||
if it.label.len > 0 {
|
if it.label.len > 0 {
|
||||||
g.writeln('\t$it.label\__continue: {}')
|
g.writeln('\t${it.label}__continue: {}')
|
||||||
}
|
}
|
||||||
g.writeln('}')
|
g.writeln('}')
|
||||||
if it.label.len > 0 {
|
if it.label.len > 0 {
|
||||||
g.writeln('\t$it.label\__break: {}')
|
g.writeln('\t${it.label}__break: {}')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5566,7 +5566,7 @@ fn (mut g Gen) gen_str_default(sym table.TypeSymbol, styp string, str_fn_name st
|
||||||
convertor = 'bool'
|
convertor = 'bool'
|
||||||
typename_ = 'bool'
|
typename_ = 'bool'
|
||||||
} else {
|
} else {
|
||||||
verror("could not generate string method for type \'$styp\'")
|
verror("could not generate string method for type '$styp'")
|
||||||
}
|
}
|
||||||
g.type_definitions.writeln('string ${str_fn_name}($styp it); // auto')
|
g.type_definitions.writeln('string ${str_fn_name}($styp it); // auto')
|
||||||
g.auto_str_funcs.writeln('string ${str_fn_name}($styp it) {')
|
g.auto_str_funcs.writeln('string ${str_fn_name}($styp it) {')
|
||||||
|
|
|
@ -15,8 +15,7 @@ const (
|
||||||
'public', 'return', 'static', 'super', 'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void',
|
'public', 'return', 'static', 'super', 'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void',
|
||||||
'while', 'with', 'yield']
|
'while', 'with', 'yield']
|
||||||
tabs = ['', '\t', '\t\t', '\t\t\t', '\t\t\t\t', '\t\t\t\t\t', '\t\t\t\t\t\t', '\t\t\t\t\t\t\t',
|
tabs = ['', '\t', '\t\t', '\t\t\t', '\t\t\t\t', '\t\t\t\t\t', '\t\t\t\t\t\t', '\t\t\t\t\t\t\t',
|
||||||
'\t\t\t\t\t\t\t\t', '\t\t\t\t\t\t\t\t\t', '\t\t\t\t\t\t\t\t\t', '\t\t\t\t\t\t\t\t\t'
|
'\t\t\t\t\t\t\t\t', '\t\t\t\t\t\t\t\t\t', '\t\t\t\t\t\t\t\t\t', '\t\t\t\t\t\t\t\t\t']
|
||||||
]
|
|
||||||
)
|
)
|
||||||
|
|
||||||
struct JsGen {
|
struct JsGen {
|
||||||
|
@ -1012,8 +1011,8 @@ fn (mut g JsGen) gen_go_stmt(node ast.GoStmt) {
|
||||||
name = receiver_sym.name + '.' + name
|
name = receiver_sym.name + '.' + name
|
||||||
}
|
}
|
||||||
// todo: please add a name feild without the mod name for ast.CallExpr
|
// todo: please add a name feild without the mod name for ast.CallExpr
|
||||||
if name.starts_with('$node.call_expr.mod\.') {
|
if name.starts_with('${node.call_expr.mod}.') {
|
||||||
name = name[node.call_expr.mod.len+1..]
|
name = name[node.call_expr.mod.len + 1..]
|
||||||
}
|
}
|
||||||
g.writeln('await new Promise(function(resolve){')
|
g.writeln('await new Promise(function(resolve){')
|
||||||
g.inc_indent()
|
g.inc_indent()
|
||||||
|
@ -1245,7 +1244,7 @@ fn (mut g JsGen) gen_call_expr(it ast.CallExpr) {
|
||||||
match it.or_block.kind {
|
match it.or_block.kind {
|
||||||
.block {
|
.block {
|
||||||
if it.or_block.stmts.len > 1 {
|
if it.or_block.stmts.len > 1 {
|
||||||
g.stmts(it.or_block.stmts[..it.or_block.stmts.len-1])
|
g.stmts(it.or_block.stmts[..it.or_block.stmts.len - 1])
|
||||||
}
|
}
|
||||||
g.write('return ')
|
g.write('return ')
|
||||||
g.stmt(it.or_block.stmts.last())
|
g.stmt(it.or_block.stmts.last())
|
||||||
|
|
|
@ -580,7 +580,7 @@ fn (mut s Scanner) text_scan() token.Token {
|
||||||
// end of `$expr`
|
// end of `$expr`
|
||||||
// allow `'$a.b'` and `'$a.c()'`
|
// allow `'$a.b'` and `'$a.c()'`
|
||||||
if s.is_inter_start && next_char == `\\` && s.look_ahead(2) !in [`n`, `\\`, `t`] {
|
if s.is_inter_start && next_char == `\\` && s.look_ahead(2) !in [`n`, `\\`, `t`] {
|
||||||
// s.warn('unknown escape sequence \\${s.look_ahead(2)}')
|
s.warn('unknown escape sequence \\${s.look_ahead(2)}')
|
||||||
}
|
}
|
||||||
if s.is_inter_start && next_char == `(` {
|
if s.is_inter_start && next_char == `(` {
|
||||||
if s.look_ahead(2) != `)` {
|
if s.look_ahead(2) != `)` {
|
||||||
|
|
Loading…
Reference in New Issue