Warning: Work in progress! Leave feedback on Zulip or Github if you'd like this doc to be updated.
This doc is for contributors or users who want to understand the Oils codebase. These internal details are subject to change.
ls */*_def.py */*_gen.py
def.pyfiles are abstract definitions. They're not translated by mycpp.
gen.pyfiles generate source code in Python and C++ from these definitions.
Idtype and the lexing rules abstractly.
compgen -W(bash only)
complete -F ls_complete_func ls
command_not_foundhook; OSH doesn't yet
See the doc on Unicode.
echo -e '\x00\n'and
echo $'\x00\n'(OSH shares lexer rules between them)
[[(OSH shares the parser and evaluator)
s='x=$y'; local $s.
exprnot in shell)
findand our own language (although this may be done with blocks)
argvby user-defined delimiters, e.g.
The point of a state machine is to make sure all cases are handled!
mem.GetVar $LINENOuses current_tok, but it can be buggy