protowhat contains the functions that are shared between sqlwhat and shellwhat (and maybe pythonwhat at some point, see issue).
Protowhat contains a bunch of functionality:
- State manipulation, the
Ex() and F() chaining and >> syntax
- The logic functions (
check_correct() etc.)
- Basic functions like
has_chosen() and success_msg()
For these functions, protowhat makes total sense and should be kept. however, there is also AST-related functionality in protowhat, such as selectors, dispatchers, functions like check_field and check_node. These were pulled into protowhat becuase it was expected that both sqlwhat and shellwhat would use them. In reality however, to my knowledge there isn't a single shell exercise that has an SCT that uses the AST representation of a bash command.
Pulling the AST-related functionality back into sqlwhat would make the package easier to understand, easier to update and easier to test. Up for debate. cc @machow
protowhatcontains the functions that are shared betweensqlwhatandshellwhat(and maybepythonwhatat some point, see issue).Protowhat contains a bunch of functionality:
Ex()andF()chaining and>>syntaxcheck_correct()etc.)has_chosen()andsuccess_msg()For these functions,
protowhatmakes total sense and should be kept. however, there is also AST-related functionality inprotowhat, such as selectors, dispatchers, functions likecheck_fieldandcheck_node. These were pulled intoprotowhatbecuase it was expected that bothsqlwhatandshellwhatwould use them. In reality however, to my knowledge there isn't a single shell exercise that has an SCT that uses the AST representation of a bash command.Pulling the AST-related functionality back into
sqlwhatwould make the package easier to understand, easier to update and easier to test. Up for debate. cc @machow