tree-sitter-bash/corpus/statements.txt

283 lines
5.8 KiB
Plaintext
Raw Normal View History

2017-07-14 23:11:35 +00:00
====================================
While statements
====================================
while something happens; do
echo a
echo b
done
---
(program
(while_statement
(command (command_name (word)) (word))
2017-07-14 23:11:35 +00:00
(do_group
(command (command_name (word)) (word))
(command (command_name (word)) (word)))))
2017-07-14 23:18:46 +00:00
====================================
While statements with IO redirects
====================================
while read line; do
echo $line
done < <(cat file)
---
(program
(while_statement
(command (command_name (word)) (word))
(do_group
(command (command_name (word)) (simple_expansion (variable_name))))
(file_redirect (process_substitution
(command (command_name (word)) (word))))))
2017-07-15 00:51:06 +00:00
====================================
For statements
====================================
for a in 1 2 $(seq 5 10); do
2017-07-15 00:51:06 +00:00
echo $a
done
for ARG; do
echo $ARG
ARG=''
done
2017-07-15 00:51:06 +00:00
---
(program
(for_statement
(variable_name)
(word)
(word)
(command_substitution (command (command_name (word)) (word) (word)))
2017-07-15 00:51:06 +00:00
(do_group
(command (command_name (word)) (simple_expansion (variable_name)))))
(for_statement
(variable_name)
(do_group
(command (command_name (word)) (simple_expansion (variable_name)))
(variable_assignment (variable_name) (raw_string)))))
2017-07-15 00:51:06 +00:00
2017-07-14 23:18:46 +00:00
====================================
If statements
====================================
if cat some_file | grep -v ok; then
echo one
elif cat other_file | grep -v ok; then
echo two
else
exit
fi
---
(program
(if_statement
(pipeline
(command (command_name (word)) (word))
(command (command_name (word)) (word) (word)))
(command (command_name (word)) (word))
2017-07-14 23:18:46 +00:00
(elif_clause
(pipeline
(command (command_name (word)) (word))
(command (command_name (word)) (word) (word)))
(command (command_name (word)) (word)))
2017-07-14 23:18:46 +00:00
(else_clause
(command (command_name (word))))))
2017-07-14 23:29:28 +00:00
====================================
If statements with conditional expressions
====================================
if [ "$(uname)" == 'Darwin' ]; then
echo one
fi
---
(program
(if_statement
(bracket_command
(string (command_substitution (command (command_name (word)))))
(raw_string))
(command (command_name (word)) (word))))
2017-07-14 23:29:28 +00:00
====================================
Case statements
====================================
case "opt" in
a)
echo a
;;
b)
2018-03-01 22:04:29 +00:00
echo b;;
2017-07-14 23:29:28 +00:00
esac
case "$Z" in
ab*|cd*) ef
esac
case $dest in
*.[1357])
exit $?
;;
esac
2017-07-14 23:29:28 +00:00
---
(program
2017-07-16 05:13:55 +00:00
(case_statement (string)
(case_item (word)
(command (command_name (word)) (word)))
2017-07-16 05:13:55 +00:00
(case_item (word)
(command (command_name (word)) (word))))
(case_statement (string (simple_expansion (variable_name)))
(case_item (word) (word)
(command (command_name (word)))))
(case_statement (simple_expansion (variable_name))
(case_item (concatenation (word) (word))
(command (command_name (word)) (simple_expansion (special_variable_name))))))
2017-07-15 00:32:55 +00:00
===============================
Subshells
===============================
(
./start-server --port=80
) &
---
(program
(subshell (command (command_name (word)) (word))))
2017-07-15 00:35:51 +00:00
===============================
Function definitions
===============================
do_something() {
echo ok
}
function do_something_else() {
echo ok
}
2017-12-26 22:27:05 +00:00
function do_yet_another_thing {
echo ok
} 2>&1
2017-07-15 00:35:51 +00:00
---
(program
2017-12-26 22:27:05 +00:00
(function_definition
(word)
2017-12-26 22:27:05 +00:00
(compound_statement (command (command_name (word)) (word))))
(function_definition
(word)
2017-12-26 22:27:05 +00:00
(compound_statement (command (command_name (word)) (word))))
(function_definition
(word)
2017-12-26 22:27:05 +00:00
(compound_statement (command (command_name (word)) (word)))
(file_redirect (file_descriptor) (word))))
=========================================
Variable declaration: declare & typeset
=========================================
declare var1
typeset -i -r var2=42 var3=10
---
(program
(declaration_command (variable_name))
(declaration_command (word) (word)
(variable_assignment (variable_name) (word))
(variable_assignment (variable_name) (word))))
=========================================
Variable declaration: readonly
=========================================
readonly var1
readonly var2=42
---
(program
(declaration_command (variable_name))
(declaration_command (variable_assignment (variable_name) (word))))
=========================================
Variable declaration: local
=========================================
local a=42 b
local -r c
---
(program
(declaration_command
(variable_assignment (variable_name) (word))
(variable_name))
(declaration_command
(word)
(variable_name)))
=========================================
Variable declaration: export
=========================================
export PATH
export FOOBAR PATH="$PATH:/usr/foobar/bin"
---
(program
(declaration_command (variable_name))
(declaration_command
(variable_name)
(variable_assignment (variable_name) (string (simple_expansion (variable_name))))))
===========================================
Expressions passed to declaration commands
===========================================
export "$(echo ${key} | tr [:lower:] [:upper:])=${p_key#*=}"
---
(program
(declaration_command
(string
(command_substitution
(pipeline
(command (command_name (word)) (expansion (variable_name)))
(command (command_name (word)) (concatenation (word)) (concatenation (word)))))
(expansion (variable_name) (word)))))
=========================================
Unset commands
=========================================
unset A
unset "$variable_name"
unsetenv -f ONE TWO
---
(program
(unset_command (variable_name))
(unset_command (string (simple_expansion (variable_name))))
(unset_command (word) (variable_name) (variable_name)))