tree-sitter-bash/corpus/literals.txt

309 lines
6.5 KiB
Plaintext
Raw Normal View History

2017-07-16 05:13:55 +00:00
=============================
Literal words
=============================
echo a
echo a b
---
(program
(command (command_name (word)) (word))
(command (command_name (word)) (word) (word)))
2017-07-16 05:13:55 +00:00
=============================
Words with special characters
=============================
echo {o[k]}
echo }}}
echo ]]] ===
---
(program
(command (command_name (word)) (concatenation (word) (word)))
(command (command_name (word)) (word))
(command (command_name (word)) (word) (word)))
2017-07-16 05:13:55 +00:00
=============================
Simple variable expansions
=============================
echo $abc
---
(program
(command (command_name (word)) (simple_expansion (variable_name))))
2017-07-16 05:13:55 +00:00
=============================
Special variable expansions
=============================
echo $# $* $@
---
(program
(command
(command_name (word))
(simple_expansion (special_variable_name))
(simple_expansion (special_variable_name))
(simple_expansion (special_variable_name))))
2017-07-16 05:13:55 +00:00
=============================
Variable expansions
=============================
echo ${var1#*#}
echo ${!abc}
2017-07-16 05:13:55 +00:00
echo ${abc}
echo ${abc:-def}
echo ${abc:- }
echo ${abc:
}
2017-07-16 05:13:55 +00:00
---
(program
(command (command_name (word)) (expansion (variable_name) (word)))
(command (command_name (word)) (expansion (variable_name)))
(command (command_name (word)) (expansion (variable_name)))
(command (command_name (word)) (expansion (variable_name) (word)))
(command (command_name (word)) (expansion (variable_name)))
(command (command_name (word)) (expansion (variable_name))))
2017-07-16 05:13:55 +00:00
===================================
Variable expansions with operators
===================================
A="${B[0]# }"
C="${D/#* -E /}"
F="${G%% *}"
---
(program
(variable_assignment
(variable_name)
(string (expansion (subscript (variable_name) (word)))))
(variable_assignment
(variable_name)
(string (expansion (variable_name) (regex))))
(variable_assignment
(variable_name)
(string (expansion (variable_name) (word) (word)))))
===================================
Variable expansions in strings
===================================
A="${A:-$B/c}"
2018-03-01 18:41:16 +00:00
A="${b=$c/$d}"
---
(program
(variable_assignment
(variable_name)
(string
(expansion
(variable_name)
(concatenation (simple_expansion (variable_name)) (word)))))
(variable_assignment
(variable_name)
(string
(expansion
(variable_name)
(concatenation
(simple_expansion (variable_name))
(word)
(simple_expansion (variable_name)))))))
2018-03-01 18:41:16 +00:00
===================================
Variable expansions with regexes
===================================
A=${B//:;;/$'\n'}
# escaped space
C=${D/;\ *;|}
---
(program
(variable_assignment (variable_name) (expansion (variable_name) (regex)))
(comment)
(variable_assignment (variable_name) (expansion (variable_name) (regex))))
2017-07-16 05:13:55 +00:00
===================================
Other variable expansion operators
===================================
cat ${BAR} ${ABC=def} ${GHI:?jkl}
---
(program
(command
(command_name (word))
2017-07-16 05:13:55 +00:00
(expansion (variable_name))
(expansion (variable_name) (word))
(expansion (variable_name) (word))))
=============================
Command substitutions
=============================
echo `echo hi`
echo `echo hi; echo there`
2017-07-16 05:13:55 +00:00
echo $(echo $(echo hi))
---
(program
(command
(command_name (word))
(command_substitution (command (command_name (word)) (word))))
(command
(command_name (word))
(command_substitution (command (command_name (word)) (word)) (command (command_name (word)) (word))))
2017-07-16 05:13:55 +00:00
(command
(command_name (word))
2017-07-16 05:13:55 +00:00
(command_substitution (command
(command_name (word))
2017-07-16 05:13:55 +00:00
(command_substitution (command
(command_name (word))
2017-07-16 05:13:55 +00:00
(word)))))))
2017-07-16 05:22:38 +00:00
=============================
Process substitutions
=============================
wc -c <(echo abc && echo def)
wc -c <(echo abc; echo def)
2017-07-16 05:22:38 +00:00
echo abc > >(wc -c)
---
(program
(command
(command_name (word))
2017-07-16 05:22:38 +00:00
(word)
(process_substitution (list
(command (command_name (word)) (word))
(command (command_name (word)) (word)))))
(command
(command_name (word))
(word)
(process_substitution
(command (command_name (word)) (word))
(command (command_name (word)) (word))))
(redirected_statement
(command
(command_name (word))
(word))
2017-07-16 05:22:38 +00:00
(file_redirect (process_substitution
(command (command_name (word)) (word))))))
2017-07-16 05:22:38 +00:00
2017-07-16 05:13:55 +00:00
=============================
Single quoted strings
=============================
echo 'a b' 'c d'
---
(program
(command (command_name (word)) (raw_string) (raw_string)))
2017-07-16 05:13:55 +00:00
=============================
Double quoted strings
=============================
echo "a" "b"
echo "a ${b} c" "d $e"
---
(program
(command (command_name (word))
2017-07-16 05:13:55 +00:00
(string)
(string))
(command (command_name (word))
2017-07-16 05:13:55 +00:00
(string (expansion (variable_name)))
(string (simple_expansion (variable_name)))))
=========================================
Strings containing command substitutions
=========================================
find "`dirname $file`" -name "$base"'*'
---
(program
(command
(command_name (word))
(string (command_substitution (command (command_name (word)) (simple_expansion (variable_name)))))
(word)
(concatenation
(string (simple_expansion (variable_name)))
(raw_string))))
=========================================
Strings containing escape sequence
=========================================
echo "\"The great escape\`\${var}"
---
(program (command (command_name (word)) (string)))
2018-03-01 17:54:08 +00:00
======================================
Strings containing special characters
======================================
echo "s/$/'/"
echo "#"
echo "s$"
2018-03-01 17:54:08 +00:00
---
(program
(command (command_name (word)) (string))
2018-03-01 17:54:08 +00:00
(command (command_name (word)) (string))
(command (command_name (word)) (string)))
=========================================
Arrays and array expansions
=========================================
a=()
b=(1 2 3)
echo ${a[@]}
echo ${#b[@]}
a[$i]=50
2017-12-26 22:55:37 +00:00
a+=(foo "bar" $(baz))
---
(program
(variable_assignment (variable_name) (array))
(variable_assignment (variable_name) (array (word) (word) (word)))
(command (command_name (word)) (expansion (subscript (variable_name) (word))))
(command (command_name (word)) (expansion (subscript (variable_name) (word))))
(variable_assignment
(subscript (variable_name) (simple_expansion (variable_name)))
2017-12-26 22:55:37 +00:00
(word))
(variable_assignment
2017-12-26 22:55:37 +00:00
(variable_name)
(array
(word)
(string)
(command_substitution (command (command_name (word)))))))