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
YAML
# 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: '['