| 68 | @Reviser public static class StringEx extends StringLiteral { |
| 69 | public StringEx(Token t) { super(t); } |
| 70 | public String translate(TypeInfo result) { |
| 71 | StringBuilder code = new StringBuilder(); |
| 72 | String literal = value(); |
| 73 | code.append('"'); |
| 74 | for (int i = 0; i < literal.length(); i++) { |
| 75 | char c = literal.charAt(i); |
| 76 | if (c == '"') |
| 77 | code.append("\\\""); |
| 78 | else if (c == '\\') |
| 79 | code.append("\\\\"); |
| 80 | else if (c == '\n') |
| 81 | code.append("\\n"); |
| 82 | else |
| 83 | code.append(c); |
| 84 | } |
| 85 | code.append('"'); |
| 86 | return code.toString(); |
| 87 | } |
| 88 | } |
| 89 | @Reviser public static class NameEx3 extends TypeChecker.NameEx2 { |
| 90 | public NameEx3(Token t) { super(t); } |