UNPKG

tcl-js

Version:

tcl-js is a tcl intepreter written completely in Typescript. It is meant to replicate the tcl-sh interpreter as closely as possible.

263 lines (259 loc) 5.82 kB
# Simple substitution like \n Simple: - name: Audible Bell input: type: raw value: 'puts -nonewline "Hello\a World"' stdout: type: raw value: "Hello\a World" - name: Backspace input: type: raw value: 'puts -nonewline "Hello\b World"' stdout: type: raw value: "Hello\b World" - name: From Feed input: type: raw value: 'puts -nonewline "Hello\f World"' stdout: type: raw value: "Hello\f World" - name: New Line input: type: raw value: 'puts -nonewline "Hello\n World"' stdout: type: raw value: "Hello\n World" - name: Carriage Return input: type: raw value: 'puts -nonewline "Hello\r World"' stdout: type: raw value: "Hello\r World" - name: Tab input: type: raw value: 'puts -nonewline "Hello\t World"' stdout: type: raw value: "Hello\t World" - name: Vertical Tab input: type: raw value: 'puts -nonewline "Hello\v World"' stdout: type: raw value: "Hello\v World" # Special substitution Special: Octal: - name: Empty input: type: raw value: 'puts -nonewline "Hello\0 World"' stdout: type: raw value: "Hello\0 World" - name: Single input: type: raw value: 'puts -nonewline "Hello\07 World"' stdout: type: raw value: "Hello\a World" - name: Double input: type: raw value: 'puts -nonewline "Hello\077 World"' stdout: type: raw value: 'Hello? World' - name: Triple input: type: raw value: 'puts -nonewline "Hello\0777 World"' stdout: type: raw value: 'Hello?7 World' Hexadecimal: - name: Empty input: type: raw value: 'puts -nonewline "Hello\x World"' stdout: type: raw value: 'Hellox World' - name: Single Decimal input: type: raw value: 'puts -nonewline "Hello\x9 World"' stdout: type: raw value: "Hello\t World" - name: Single Letter input: type: raw value: 'puts -nonewline "Hello\xb World"' stdout: type: raw value: "Hello\v World" - name: Single Capital input: type: raw value: 'puts -nonewline "Hello\xB World"' stdout: type: raw value: "Hello\v World" - name: Double input: type: raw value: 'puts -nonewline "Hello\x41 World"' stdout: type: raw value: 'HelloA World' - name: Double Mixed input: type: raw value: 'puts -nonewline "Hello\x4D World"' stdout: type: raw value: 'HelloM World' - name: Triple input: type: raw value: 'puts -nonewline "Hello\x412 World"' stdout: type: raw value: 'HelloA2 World' Unicode: - name: Empty input: type: raw value: 'puts -nonewline "Hello\u World"' stdout: type: raw value: 'Hellou World' - name: Single input: type: raw value: 'puts -nonewline "Hello\u9 World"' stdout: type: raw value: "Hello\t World" - name: Double input: type: raw value: 'puts -nonewline "Hello\u41 World"' stdout: type: raw value: 'HelloA World' - name: Triple input: type: raw value: 'puts -nonewline "Hello\u109 World"' stdout: type: raw value: 'Helloĉ World' - name: Quadrouple input: type: raw value: 'puts -nonewline "Hello\u246f World"' stdout: type: raw value: 'Hello⑯ World' - name: Quadrouple with leading zeros input: type: raw value: 'puts -nonewline "Hello\u0041 World"' stdout: type: raw value: 'HelloA World' - name: Quintuple input: type: raw value: 'puts -nonewline "Hello\u0041A World"' stdout: type: raw value: 'HelloAA World' Argument types: - name: Simple input: type: raw value: 'puts -nonewline Hello\nWorld' stdout: type: raw value: "Hello\nWorld" - name: Quotes input: type: raw value: 'puts -nonewline "Hello\nWorld"' stdout: type: raw value: "Hello\nWorld" - name: Braces input: type: raw value: 'puts -nonewline {Hello\nWorld}' stdout: type: raw value: 'Hello\nWorld' Escape: - name: Braces input: type: raw value: 'puts -nonewline {Hello\}World}' stdout: type: raw value: 'Hello\}World' - name: Braces error input: type: raw value: 'puts -nonewline {Hello}World}' output: type: error - name: Quotes input: type: raw value: 'puts -nonewline "Hello\"World"' stdout: type: raw value: 'Hello"World' - name: Quotes error input: type: raw value: 'puts -nonewline "Hello"World"' output: type: error - name: Newlines in quotes input: type: raw value: "puts -nonewline \"Hello\\\nWorld\"" stdout: type: raw value: 'Hello World' - name: Newlines in braces input: type: raw value: "puts -nonewline {Hello\\\nWorld}" stdout: type: raw value: 'Hello World' - name: Variables input: type: raw value: 'set test hi; puts -nonewline "This is a \$test and a $test"' stdout: type: raw value: 'This is a $test and a hi' - name: Brackets input: type: raw value: 'set test [puts -nonewline \[]' stdout: type: raw value: '['