mirror of
https://github.com/ralsina/tartrazine.git
synced 2025-06-19 06:33:06 -03:00
Reorganize tests into a real spec suite
This commit is contained in:
14
spec/tests/bash/test_array_nums.txt
Normal file
14
spec/tests/bash/test_array_nums.txt
Normal file
@ -0,0 +1,14 @@
|
||||
---input---
|
||||
a=(1 2 3)
|
||||
|
||||
---tokens---
|
||||
'a' Name.Variable
|
||||
'=' Operator
|
||||
'(' Operator
|
||||
'1' Literal.Number
|
||||
' ' Text.Whitespace
|
||||
'2' Literal.Number
|
||||
' ' Text.Whitespace
|
||||
'3' Literal.Number
|
||||
')' Operator
|
||||
'\n' Text.Whitespace
|
15
spec/tests/bash/test_curly_no_escape_and_quotes.txt
Normal file
15
spec/tests/bash/test_curly_no_escape_and_quotes.txt
Normal file
@ -0,0 +1,15 @@
|
||||
---input---
|
||||
echo "${a//["b"]/}"
|
||||
|
||||
---tokens---
|
||||
'echo' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'${' Literal.String.Interpol
|
||||
'a' Name.Variable
|
||||
'//[' Punctuation
|
||||
'"b"' Literal.String.Double
|
||||
']/' Punctuation
|
||||
'}' Literal.String.Interpol
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
13
spec/tests/bash/test_curly_with_escape.txt
Normal file
13
spec/tests/bash/test_curly_with_escape.txt
Normal file
@ -0,0 +1,13 @@
|
||||
---input---
|
||||
echo ${a//[\"]/}
|
||||
|
||||
---tokens---
|
||||
'echo' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'${' Literal.String.Interpol
|
||||
'a' Name.Variable
|
||||
'//[' Punctuation
|
||||
'\\"' Literal.String.Escape
|
||||
']/' Punctuation
|
||||
'}' Literal.String.Interpol
|
||||
'\n' Text.Whitespace
|
15
spec/tests/bash/test_end_of_line_nums.txt
Normal file
15
spec/tests/bash/test_end_of_line_nums.txt
Normal file
@ -0,0 +1,15 @@
|
||||
---input---
|
||||
a=1
|
||||
b=2 # comment
|
||||
|
||||
---tokens---
|
||||
'a' Name.Variable
|
||||
'=' Operator
|
||||
'1' Literal.Number
|
||||
'\n' Text.Whitespace
|
||||
|
||||
'b' Name.Variable
|
||||
'=' Operator
|
||||
'2' Literal.Number
|
||||
' ' Text.Whitespace
|
||||
'# comment\n' Comment.Single
|
672
spec/tests/bash/test_math.txt
Normal file
672
spec/tests/bash/test_math.txt
Normal file
@ -0,0 +1,672 @@
|
||||
---input---
|
||||
# TODO: Find git dir; global options
|
||||
# TODO: LIBEXECDIR or something
|
||||
GIT_DIR="${GIT_DIR:-.git}"
|
||||
|
||||
INDEX_VERSION=2
|
||||
|
||||
gitsort() (
|
||||
# This will still often be wrong
|
||||
LANG=C sort
|
||||
)
|
||||
|
||||
# Is it hacky? Hell yes. Is it POSIX? HELL YES.
|
||||
write_hex() {
|
||||
hex="$1"
|
||||
while [ -n "$hex" ]
|
||||
do
|
||||
cur=$(printf "%s" "$hex" | cut -c1-2)
|
||||
next=$(printf "%s" "$hex" | cut -c3-)
|
||||
printf "\\x$(printf "%s" "$cur")"
|
||||
hex="$next"
|
||||
done
|
||||
}
|
||||
|
||||
# Prints an integer to stdout in binary, big-endian
|
||||
write_int32() (
|
||||
n="$1"
|
||||
hex=$(printf "%08X" "$n")
|
||||
write_hex "$hex"
|
||||
)
|
||||
|
||||
write_int16() (
|
||||
n="$1"
|
||||
hex=$(printf "%04X" "$n")
|
||||
write_hex "$hex"
|
||||
)
|
||||
|
||||
read_text() (
|
||||
path="$1"
|
||||
offs="$2"
|
||||
len="$3"
|
||||
for oct in $(od -An -txC -N"$len" -j"$offs" "$index")
|
||||
do
|
||||
printf "\x$oct"
|
||||
done
|
||||
)
|
||||
|
||||
read_int16() (
|
||||
path="$1"
|
||||
offs="$2"
|
||||
i16=$(od -An -tdS -j"$offs" -N2 "$path" | tr -d ' ')
|
||||
i16=$((((i16>>8)&0xff) | ((i16<<8)&0xff00)))
|
||||
echo "$i16"
|
||||
)
|
||||
|
||||
read_int32() (
|
||||
path="$1"
|
||||
offs="$2"
|
||||
i32=$(od -An -tdI -j"$offs" -N4 "$path" | tr -d ' ')
|
||||
i32=$((((i32>>24)&0xff) |
|
||||
((i32<<8)&0xff0000) |
|
||||
((i32>>8)&0xff00) |
|
||||
((i32<<24)&0xff000000)))
|
||||
echo "$i32"
|
||||
)
|
||||
|
||||
read_hex() (
|
||||
path="$1"
|
||||
offs="$2"
|
||||
len="$3"
|
||||
od -An -txC -N"$len" -j"$offs" "$path" | tr -d ' \n'
|
||||
)
|
||||
|
||||
normalize_path() (
|
||||
path="$1"
|
||||
path="${path#./}"
|
||||
# TODO: Remove the leading / if fully qualified
|
||||
if [ "${path#.git}" != "$path" ]
|
||||
then
|
||||
printf '%s' 'Invalid path %s\n' "$path"
|
||||
exit 1
|
||||
fi
|
||||
printf "%s" "$path"
|
||||
)
|
||||
|
||||
---tokens---
|
||||
'# TODO: Find git dir; global options\n' Comment.Single
|
||||
|
||||
'# TODO: LIBEXECDIR or something\n' Comment.Single
|
||||
|
||||
'GIT_DIR' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'${' Literal.String.Interpol
|
||||
'GIT_DIR' Name.Variable
|
||||
':-' Keyword
|
||||
'.git' Punctuation
|
||||
'}' Literal.String.Interpol
|
||||
'"' Literal.String.Double
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'INDEX_VERSION' Name.Variable
|
||||
'=' Operator
|
||||
'2' Literal.Number
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'gitsort' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'# This will still often be wrong\n' Comment.Single
|
||||
|
||||
'\t' Text.Whitespace
|
||||
'LANG' Name.Variable
|
||||
'=' Operator
|
||||
'C' Text
|
||||
' ' Text.Whitespace
|
||||
'sort' Text
|
||||
'\n' Text.Whitespace
|
||||
|
||||
')' Operator
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'# Is it hacky? Hell yes. Is it POSIX? HELL YES.\n' Comment.Single
|
||||
|
||||
'write_hex' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'{' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'hex' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$1' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'while' Keyword
|
||||
' ' Text.Whitespace
|
||||
'[' Operator
|
||||
' ' Text.Whitespace
|
||||
'-n' Text
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$hex' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
']' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'do' Keyword
|
||||
'\n\t\t' Text.Whitespace
|
||||
'cur' Name.Variable
|
||||
'=' Operator
|
||||
'$(' Keyword
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"%s"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$hex' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'|' Punctuation
|
||||
' ' Text.Whitespace
|
||||
'cut' Text
|
||||
' ' Text.Whitespace
|
||||
'-c1-2' Text
|
||||
')' Keyword
|
||||
'\n\t\t' Text.Whitespace
|
||||
'next' Name.Variable
|
||||
'=' Operator
|
||||
'$(' Keyword
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"%s"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$hex' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'|' Punctuation
|
||||
' ' Text.Whitespace
|
||||
'cut' Text
|
||||
' ' Text.Whitespace
|
||||
'-c3-' Text
|
||||
')' Keyword
|
||||
'\n\t\t' Text.Whitespace
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'\\\\x' Literal.String.Double
|
||||
'$(' Keyword
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"%s"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$cur' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
')' Keyword
|
||||
'"' Literal.String.Double
|
||||
'\n\t\t' Text.Whitespace
|
||||
'hex' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$next' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'done' Keyword
|
||||
'\n' Text.Whitespace
|
||||
|
||||
'}' Operator
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'# Prints an integer to stdout in binary, big-endian\n' Comment.Single
|
||||
|
||||
'write_int32' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'n' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$1' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'hex' Name.Variable
|
||||
'=' Operator
|
||||
'$(' Keyword
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"%08X"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$n' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
')' Keyword
|
||||
'\n\t' Text.Whitespace
|
||||
'write_hex' Text
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$hex' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
||||
|
||||
')' Operator
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'write_int16' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'n' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$1' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'hex' Name.Variable
|
||||
'=' Operator
|
||||
'$(' Keyword
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"%04X"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$n' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
')' Keyword
|
||||
'\n\t' Text.Whitespace
|
||||
'write_hex' Text
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$hex' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
||||
|
||||
')' Operator
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'read_text' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'path' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$1' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'offs' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$2' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'len' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$3' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'for' Keyword
|
||||
' ' Text.Whitespace
|
||||
'oct' Text
|
||||
' ' Text.Whitespace
|
||||
'in' Keyword
|
||||
' ' Text.Whitespace
|
||||
'$(' Keyword
|
||||
'od' Text
|
||||
' ' Text.Whitespace
|
||||
'-An' Text
|
||||
' ' Text.Whitespace
|
||||
'-txC' Text
|
||||
' ' Text.Whitespace
|
||||
'-N' Text
|
||||
'"' Literal.String.Double
|
||||
'$len' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'-j' Text
|
||||
'"' Literal.String.Double
|
||||
'$offs' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$index' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
')' Keyword
|
||||
'\n\t' Text.Whitespace
|
||||
'do' Keyword
|
||||
'\n\t\t' Text.Whitespace
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'\\x' Literal.String.Double
|
||||
'$oct' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'done' Keyword
|
||||
'\n' Text.Whitespace
|
||||
|
||||
')' Operator
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'read_int16' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'path' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$1' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'offs' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$2' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'i16' Name.Variable
|
||||
'=' Operator
|
||||
'$(' Keyword
|
||||
'od' Text
|
||||
' ' Text.Whitespace
|
||||
'-An' Text
|
||||
' ' Text.Whitespace
|
||||
'-tdS' Text
|
||||
' ' Text.Whitespace
|
||||
'-j' Text
|
||||
'"' Literal.String.Double
|
||||
'$offs' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'-N2' Text
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$path' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'|' Punctuation
|
||||
' ' Text.Whitespace
|
||||
'tr' Text
|
||||
' ' Text.Whitespace
|
||||
'-d' Text
|
||||
' ' Text.Whitespace
|
||||
"' '" Literal.String.Single
|
||||
')' Keyword
|
||||
'\n\t' Text.Whitespace
|
||||
'i16' Name.Variable
|
||||
'=' Operator
|
||||
'$((' Keyword
|
||||
'(' Operator
|
||||
'(' Operator
|
||||
'i16' Name.Variable
|
||||
'>>' Operator
|
||||
'8' Literal.Number
|
||||
')' Operator
|
||||
'&' Operator
|
||||
'0xff' Literal.Number
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'|' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'(' Operator
|
||||
'i16' Name.Variable
|
||||
'<<' Operator
|
||||
'8' Literal.Number
|
||||
')' Operator
|
||||
'&' Operator
|
||||
'0xff00' Literal.Number
|
||||
'))' Keyword
|
||||
')' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'echo' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$i16' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
||||
|
||||
')' Operator
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'read_int32' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'path' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$1' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'offs' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$2' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'i32' Name.Variable
|
||||
'=' Operator
|
||||
'$(' Keyword
|
||||
'od' Text
|
||||
' ' Text.Whitespace
|
||||
'-An' Text
|
||||
' ' Text.Whitespace
|
||||
'-tdI' Text
|
||||
' ' Text.Whitespace
|
||||
'-j' Text
|
||||
'"' Literal.String.Double
|
||||
'$offs' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'-N4' Text
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$path' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'|' Punctuation
|
||||
' ' Text.Whitespace
|
||||
'tr' Text
|
||||
' ' Text.Whitespace
|
||||
'-d' Text
|
||||
' ' Text.Whitespace
|
||||
"' '" Literal.String.Single
|
||||
')' Keyword
|
||||
'\n\t' Text.Whitespace
|
||||
'i32' Name.Variable
|
||||
'=' Operator
|
||||
'$((' Keyword
|
||||
'(' Operator
|
||||
'(' Operator
|
||||
'i32' Name.Variable
|
||||
'>>' Operator
|
||||
'24' Literal.Number
|
||||
')' Operator
|
||||
'&' Operator
|
||||
'0xff' Literal.Number
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'|' Operator
|
||||
'\n\t\t' Text.Whitespace
|
||||
'(' Operator
|
||||
'(' Operator
|
||||
'i32' Name.Variable
|
||||
'<<' Operator
|
||||
'8' Literal.Number
|
||||
')' Operator
|
||||
'&' Operator
|
||||
'0xff0000' Literal.Number
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'|' Operator
|
||||
'\n\t\t' Text.Whitespace
|
||||
'(' Operator
|
||||
'(' Operator
|
||||
'i32' Name.Variable
|
||||
'>>' Operator
|
||||
'8' Literal.Number
|
||||
')' Operator
|
||||
'&' Operator
|
||||
'0xff00' Literal.Number
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'|' Operator
|
||||
'\n\t\t' Text.Whitespace
|
||||
'(' Operator
|
||||
'(' Operator
|
||||
'i32' Name.Variable
|
||||
'<<' Operator
|
||||
'24' Literal.Number
|
||||
')' Operator
|
||||
'&' Operator
|
||||
'0xff000000' Literal.Number
|
||||
'))' Keyword
|
||||
')' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'echo' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$i32' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
||||
|
||||
')' Operator
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'read_hex' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'path' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$1' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'offs' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$2' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'len' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$3' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'od' Text
|
||||
' ' Text.Whitespace
|
||||
'-An' Text
|
||||
' ' Text.Whitespace
|
||||
'-txC' Text
|
||||
' ' Text.Whitespace
|
||||
'-N' Text
|
||||
'"' Literal.String.Double
|
||||
'$len' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'-j' Text
|
||||
'"' Literal.String.Double
|
||||
'$offs' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$path' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'|' Punctuation
|
||||
' ' Text.Whitespace
|
||||
'tr' Text
|
||||
' ' Text.Whitespace
|
||||
'-d' Text
|
||||
' ' Text.Whitespace
|
||||
"' \\n'" Literal.String.Single
|
||||
'\n' Text.Whitespace
|
||||
|
||||
')' Operator
|
||||
'\n\n' Text.Whitespace
|
||||
|
||||
'normalize_path' Text
|
||||
'(' Operator
|
||||
')' Operator
|
||||
' ' Text.Whitespace
|
||||
'(' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'path' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$1' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'path' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'${' Literal.String.Interpol
|
||||
'path' Name.Variable
|
||||
'#./' Punctuation
|
||||
'}' Literal.String.Interpol
|
||||
'"' Literal.String.Double
|
||||
'\n\t' Text.Whitespace
|
||||
'# TODO: Remove the leading / if fully qualified\n' Comment.Single
|
||||
|
||||
'\t' Text.Whitespace
|
||||
'if' Keyword
|
||||
' ' Text.Whitespace
|
||||
'[' Operator
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'${' Literal.String.Interpol
|
||||
'path' Name.Variable
|
||||
'#.git' Punctuation
|
||||
'}' Literal.String.Interpol
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'!' Text
|
||||
'=' Operator
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$path' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
']' Operator
|
||||
'\n\t' Text.Whitespace
|
||||
'then' Keyword
|
||||
'\n\t\t' Text.Whitespace
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
"'%s'" Literal.String.Single
|
||||
' ' Text.Whitespace
|
||||
"'Invalid path %s\\n'" Literal.String.Single
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$path' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n\t\t' Text.Whitespace
|
||||
'exit' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'1' Literal.Number
|
||||
'\n\t' Text.Whitespace
|
||||
'fi' Keyword
|
||||
'\n\t' Text.Whitespace
|
||||
'printf' Name.Builtin
|
||||
' ' Text.Whitespace
|
||||
'"%s"' Literal.String.Double
|
||||
' ' Text.Whitespace
|
||||
'"' Literal.String.Double
|
||||
'$path' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
||||
|
||||
')' Operator
|
||||
'\n' Text.Whitespace
|
8
spec/tests/bash/test_parsed_single.txt
Normal file
8
spec/tests/bash/test_parsed_single.txt
Normal file
@ -0,0 +1,8 @@
|
||||
---input---
|
||||
a=$'abc\''
|
||||
|
||||
---tokens---
|
||||
'a' Name.Variable
|
||||
'=' Operator
|
||||
"$'abc\\''" Literal.String.Single
|
||||
'\n' Text.Whitespace
|
26
spec/tests/bash/test_short_variable_names.txt
Normal file
26
spec/tests/bash/test_short_variable_names.txt
Normal file
@ -0,0 +1,26 @@
|
||||
---input---
|
||||
x="$"
|
||||
y="$_"
|
||||
z="$abc"
|
||||
|
||||
---tokens---
|
||||
'x' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$' Text
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
||||
|
||||
'y' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$_' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
||||
|
||||
'z' Name.Variable
|
||||
'=' Operator
|
||||
'"' Literal.String.Double
|
||||
'$abc' Name.Variable
|
||||
'"' Literal.String.Double
|
||||
'\n' Text.Whitespace
|
Reference in New Issue
Block a user