// This file is part of www.nand2tetris.org // and the book "The Elements of Computing Systems" // by Nisan and Schocken, MIT Press. // File name: projects/12/StringTest/Main.jack /** Test program for the OS String class. */ class Main { /** Performs various string manipulations and displays their results. */ function void main() { var String s; var String i; let s = String.new(0); // a zero-capacity string should be supported do s.dispose(); let s = String.new(6); // capacity 6, make sure that length 5 is displayed let s = s.appendChar(97); let s = s.appendChar(98); let s = s.appendChar(99); let s = s.appendChar(100); let s = s.appendChar(101); do StdIO.printString("new,appendChar: "); do StdIO.printString(s); // new, appendChar: abcde do StdIO.println(); let i = String.new(6); do i.setInt(12345); do StdIO.printString("setInt: "); do StdIO.printString(i); // setInt: 12345 do StdIO.println(); let i = String.new(6); do i.setInt(-32767); do StdIO.printString("setInt: "); do StdIO.printString(i); // setInt: -32767 do StdIO.println(); let s="abcde"; do StdIO.printString("length: "); do StdIO.printInt(s.length()); // length: 5 do StdIO.println(); do StdIO.printString("charAt[2]: "); do StdIO.printInt(s.charAt(2)); // charAt[2]: 99 do StdIO.println(); do s.setCharAt(2, 45); do StdIO.printString("setCharAt(2,'-'): "); do StdIO.printString(s); // setCharAt(2,'-'): ab-de do StdIO.println(); let s="abcde"; do s.eraseLastChar(); do StdIO.printString("eraseLastChar: "); do StdIO.printString(s); // eraseLastChar: ab-d do StdIO.println(); let s = "456"; do StdIO.printString("intValue: "); do StdIO.printInt(s.intValue()); // intValue: 456 do StdIO.println(); let s = "-32123"; do StdIO.printString("intValue: "); do StdIO.printInt(s.intValue()); // intValue: -32123 do StdIO.println(); do StdIO.printString("backSpace: "); do StdIO.printInt(String.backSpace()); // backSpace: 129 do StdIO.println(); do StdIO.printString("doubleQuote: "); do StdIO.printInt(String.doubleQuote());// doubleQuote: 34 do StdIO.println(); do StdIO.printString("newLine: "); do StdIO.printInt(String.newLine()); // newLine: 128 do StdIO.println(); return; } }