Initial checkin of parser: latest update is working out the scoping rules for variables, but not yet using proper scoping at runtime.
Initial checkin of parser: latest update is working out the scoping rules for variables, but not yet using proper scoping at runtime.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Committer: Tom <tom@Toms-MacBook-Pro.local>
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#	new file:   Minstrel.g4
#	new file:   generate_from_grammar.sh
#	new file:   src/com/writeoncereadmany/minstrel/Main.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ASTNode.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ASTNodeBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/AnonymousFunction.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/AnonymousFunctionBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ArgumentList.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ArgumentListBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Block.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/BlockBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Declaration.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/DeclarationBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Definition.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/DefinitionBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ErrorStatement.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ErrorStatementBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Expression.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ExpressionStatement.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ExpressionStatementBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/FunctionCall.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/FunctionCallBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/FunctionDefinition.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/FunctionDefinitionBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/FunctionInterface.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/FunctionInterfaceBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/IfStatement.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/IfStatementBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/IntegerLiteral.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/IntegerLiteralBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Name.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/NameBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Operation.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/OperationBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Operator.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Operators.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Parameter.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ParameterBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ParameterList.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ParameterListBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ParenthesisedExpressionBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Program.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ProgramBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ReassignmentStatement.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ReassignmentStatementBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ReturnStatement.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/ReturnStatementBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Statement.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/StringLiteral.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/StringLiteralBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Type.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/TypeBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/Variable.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/VariableBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/WhileStatement.java
#	new file:   src/com/writeoncereadmany/minstrel/ast/WhileStatementBuilder.java
#	new file:   src/com/writeoncereadmany/minstrel/definition/DefinitionContext.java
#	new file:   src/com/writeoncereadmany/minstrel/framework/Framework.java
#	new file:   src/com/writeoncereadmany/minstrel/listeners/ASTBuildingParseListener.java
#	new file:   src/com/writeoncereadmany/minstrel/listeners/ExceptionThrowingErrorListener.java
#	new file:   src/com/writeoncereadmany/minstrel/listeners/MinstrelParseException.java
#	new file:   src/com/writeoncereadmany/minstrel/listeners/PrintingParseListener.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/BooleanValue.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/CustomFunction.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/DefaultSystemContext.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/Environment.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/ExecutionContext.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/Function.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/IntegerValue.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/PrintFunction.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/StringValue.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/UnitValue.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/Value.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/ValueList.java
#	new file:   src/com/writeoncereadmany/minstrel/runtime/utility/Printer.java
#	new file:   src/com/writeoncereadmany/minstrel/scope/DeBruijnIndex.java
#	new file:   src/com/writeoncereadmany/minstrel/scope/Scope.java
#	new file:   src/com/writeoncereadmany/minstrel/scope/Scopes.java
#	new file:   test/com/writeoncereadmany/minstrel/framework/FrameworkTest.java
#	new file:   test/com/writeoncereadmany/minstrel/scope/ScopeTest.java
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	.idea/
#	Minstrel.iml
#	out/
Now builds AST for interfaces
Remove tests which assert about behaviour that's either not intended to be implemented, or I'm nowhere near implementing
Renamed interface definition classes, and added basic shell of class definition
Refactor definitions into subpackages
A whole bunch of work on class definitions
Custom classes appear to... sort of just work? That was surprisingly easy
Update Main so it can actually run programs :)
Merge https://github.com/writeoncereadmany/minstrel

Conflicts:
	src/com/writeoncereadmany/minstrel/Main.java
	src/com/writeoncereadmany/minstrel/ast/ASTNode.java
	src/com/writeoncereadmany/minstrel/ast/ASTNodeBuilder.java
	src/com/writeoncereadmany/minstrel/ast/Program.java
	src/com/writeoncereadmany/minstrel/ast/ProgramBuilder.java
	src/com/writeoncereadmany/minstrel/framework/Framework.java
	src/com/writeoncereadmany/minstrel/listeners/ASTBuildingParseListener.java
	src/com/writeoncereadmany/minstrel/listeners/PrintingParseListener.java
Sort out formatting
Call methods from other methods
First step to type-checking - store types in scopes, and only allow reassignment to types declared as variable.
Second step in type-checking - supporting named types of String, Number, and Unknown
Start moving towards having separate type namespaces, and sketching out what we want types to be able to do
Start moving towards having separate type namespaces, and sketching out what we want types to be able to do