added null check to NativeFunction
added null checks to Invoker
added missing @Override to AbstractFunction
renamed FunctionNode -> CallNode
added NodeCreator
refactored DefinedFunctionsCreator.createDefinedFunctions() to be non-static
reused NodeCreator in DefinedFunctionsCreator
removed redundant code
moved AssignmentList.Assignment class to separate file and added tests
refactored AssignmentList to implement Iterable<Assignment> and added add(Assignment) method
added Assignment.assignedName()
moved argument list related classes from .parse.def -> .function.def.args
moved DefinedFunctionsCreator to .parse package
refactor ArgumentNodesCreator to use new AssignmentList methods: add(Assignment)/iterator(), got rid of unused methods from AssignmentList
changed ArgumentNodesCreator.createArgumentNodes to non-static
made constructor package private in all XxxNode classes
added Empty.definitionNodeList()
refactored ArgumentNodesCreator to use Empty.definitionNodeList()