package controller; public class Controller { public Controller() public void runScript(String script) throws UnrecognizedIdentifierException, WrongNumberOfArguments, SyntacticErrorException public void setLanguage(String language) public void putScript(String script) public MainView getMainView() public DisplayLabelReader getValueReader() } package exception; public class DivideByZeroException extends SyntacticErrorException { } package exception; public class LogByNonpositiveException extends SyntacticErrorException { } package exception; public class OutOfBoundsException extends Exception { } package exception; public class RandomMaxTooSmallException extends SyntacticErrorException { } package exception; public class ReflectionFoundNoMatchesException extends Exception { public ReflectionFoundNoMatchesException() public ReflectionFoundNoMatchesException(String inClass) } package exception; public class SyntacticErrorException extends Exception{ public SyntacticErrorException() public SyntacticErrorException(String msg) } package exception; public class UnrecognizedIdentifierException extends Exception{ } package exception; public class UseBeforeDefineException extends SyntacticErrorException { } package exception; public class WrongNumberOfArguments extends Exception{ public WrongNumberOfArguments() public WrongNumberOfArguments(String inClass) } public class Main extends Application { public void start (Stage s) } package model; public interface ActorState { } package model; public class CommandHistory extends Environment { } package model; public abstract class Environment implements Iterable{ public Environment() public List getImmutableValues () public void apply (Consumer action) public E get(String name) public E get(Token token) public void add(E e) public void remove(E e) public Iterator iterator() public void addAll(Environment env) } package model.executable; public class CodeBlock implements Executable{ public CodeBlock(List sequence) public double execute(TurtleLog log) public String getName() public List unravel() public GlobalVariables getLocalVarRefs() public GlobalVariables getGlobalVarRefs() public CodeBlock setVarRefs(GlobalVariables localVars, GlobalVariables globalVars) public SemanticsRegistry getSemantics() public CodeBlock setSemantics(SemanticsRegistry semantics) public CodeBlock setPendingArgs(List args) public List getPendingArgs() public void setName(String newName) } package model.executable; public abstract class Command implements Executable{ public Command(List argv) public abstract double execute(TurtleLog log) public String getName() public void setName(String newName) } package model.executable; public class Constant implements Executable { public Constant(Token token) public Constant(String name) public Constant(double value) public Constant(String name, double value) public String getName() public double execute(TurtleLog log) public void setName(String newName) public void setValue(double val) } package model.executable; public class ProcedureImpl{ public ProcedureImpl init(CodeBlock params, CodeBlock procedure) public double execute(TurtleLog log, List argument) public List getParams() } package model.executable; public class ProcedureStub extends Command { public ProcedureStub(List argv) public double execute(TurtleLog log) throws SyntacticErrorException public String getName() public void setSemantics(SemanticsRegistry semanticsRegistry) } package model.executable; public abstract class StandardCommand extends Command { public StandardCommand(List argv) public abstract double execute(TurtleLog log) public abstract String getName(); } package model.executable.stdCommand.bool; public class And extends StandardCommand { public And(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.bool; public class Equal extends StandardCommand { public Equal(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.bool; public class Greater extends StandardCommand { public Greater(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.bool; public class Less extends StandardCommand { public Less(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.bool; public class Not extends StandardCommand { public Not(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.bool; public class NotEqual extends StandardCommand { public NotEqual(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.bool; public class Or extends StandardCommand { public Or(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.controlFlow; public class DoTimes extends StandardCommand{ public DoTimes(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.controlFlow; public class For extends StandardCommand{ public For(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.controlFlow; public class If extends StandardCommand { public If(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.controlFlow; public class IfElse extends StandardCommand { public IfElse(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.controlFlow; public class Make extends StandardCommand{ public Make(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.controlFlow; public class Repeat extends StandardCommand { public Repeat(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.controlFlow; public class To extends StandardCommand { public To(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.math; public class Atan extends StandardCommand { public Atan(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Cos extends StandardCommand { public Cos(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Difference extends StandardCommand { public Difference(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Log extends StandardCommand { public Log(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Minus extends StandardCommand { public Minus(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Pi extends StandardCommand { public Pi(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Pow extends StandardCommand { public Pow(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Product extends StandardCommand { public Product(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Quotient extends StandardCommand { public Quotient(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Random extends StandardCommand { public Random(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Remainder extends StandardCommand { public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Sin extends StandardCommand { public Sin(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Sum extends StandardCommand { public Sum(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.math; public class Tan extends StandardCommand { public Tan(List argv) throws SyntacticErrorException public double execute(TurtleLog log) throws SyntacticErrorException public String getName() } package model.executable.stdCommand.movement; public class Back extends StandardCommand{ public Back(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class ClearScreen extends StandardCommand{ public ClearScreen(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class Forward extends StandardCommand{ public Forward(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class HideTurtle extends StandardCommand{ public HideTurtle(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class Home extends StandardCommand{ public Home(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class Left extends StandardCommand{ public Left(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class PenDown extends StandardCommand{ public PenDown(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class PenUp extends StandardCommand{ public PenUp(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class Right extends StandardCommand{ public Right(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class SetHeading extends StandardCommand{ public SetHeading(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class SetXY extends StandardCommand{ public SetXY(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class ShowTurtle extends StandardCommand{ public ShowTurtle(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.movement; public class Towards extends StandardCommand{ public Towards(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.queries; public class HeadingQuery extends StandardCommand{ public HeadingQuery(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.queries; public class PenDownQuery extends StandardCommand{ public PenDownQuery(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.queries; public class ShowingQuery extends StandardCommand{ public ShowingQuery(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.queries; public class XCorQuery extends StandardCommand{ public XCorQuery(List argv) public double execute(TurtleLog log) public String getName() } package model.executable.stdCommand.queries; public class YCorQuery extends StandardCommand{ public YCorQuery(List argv) public double execute(TurtleLog log) public String getName() } package model.executable; public class Variable implements Executable { public Variable(Token token) public Variable(String name, Executable expression) public Variable setExpression(Executable expression) public Variable setExpression(double value) public Executable getExpression() public double execute(TurtleLog log) public String getName() public void setName(String newName) } package model; public interface Executable { } package model; public class GlobalVariables extends Environment { public void addAll(GlobalVariables gvars) } package model; public class Interpreter { public Interpreter() public CodeBlock parseScript(String script) public void setLanguage(String language) public UserCommands getUserCommands() public GlobalVariables getGlobalVars() } package model; public class ParserContext { public ParserContext() public ParserContext(GlobalVariables gVars) public List getInstructionCacheInReverse() public List getPendingArgs() public List getCodeBlock() public void clearPendingArgs() public GlobalVariables getVars() public CodeBlock export() } package model; public class Pen implements Cloneable { public Pen() public boolean isDown() public void setDown(boolean isDown) public Color getColor() public void setColor(Color color) public double getThickness() public void setThickness(double thickness) public PenType getType() public void setType(PenType type) public Pen clone() } package model; public class SemanticsRegistry { public static final String PROP_CLASS = ".class"; public SemanticsRegistry(UserCommands userCommands) public void register(String script) public Set getStandardCommands() public ResourceBundle getLexicon() public int getNumParam(String token) public int getNumParam(Token token) public String getClass(Token token) public void putImpl(Token token, ProcedureImpl impl) public ProcedureImpl getImpl(String name) public boolean isCustomCmd(String cmd) } package model.token; public class CloseBracketToken extends Token { public CloseBracketToken(String token, SemanticsRegistry semanticsRegistry) public void resolve( } package model.token; public class ConstantToken extends Token { public ConstantToken(String token, SemanticsRegistry semanticsRegistry) public void resolve( } package model.token; public class CustomCommandToken extends StandardCommandToken{ public CustomCommandToken(String token, SemanticsRegistry semanticsRegistry) public void resolve( } package model.token; public class OpenBracketToken extends Token { public OpenBracketToken(String token, SemanticsRegistry semanticsRegistry) public void resolve( } package model.token; public class StandardCommandToken extends Token { public StandardCommandToken( public void resolve( } package model.token; public abstract class Token { public Token(String token, SemanticsRegistry semanticsRegistry) public abstract void resolve( public String toString() } package model.token; public class TokenFactory { public static final String PROP_CLASS = ".class"; public TokenFactory(SemanticsRegistry semanticsRegistry) public Token build(String primitive) } package model.token; public class VariableToken extends Token { public VariableToken(String token, SemanticsRegistry semanticsRegistry) public void resolve( } package model; public class Translator { public Translator() public void setLanguage(String language) public String translateToken(String tokenString) } package model; public class TurtleLog implements Iterable { public TurtleLog() public void append(ActorState state) public Iterator iterator() public void didRender() public void noRender() public ActorState peekLast() } package model; public class TurtleState implements ActorState { public TurtleState() public void setPositionX(double x) public void setPositionY(double y) public void setDirection(double degrees) public void setVisible(boolean isVisible) public void setAnimate(boolean animate) public void setClearScreen(boolean clear) public double getPositionX() public double getPositionY() public double getHeading() public boolean isVisible() public boolean doesAnimate() public boolean clearsScreen() public void setPen(Pen pen) public Pen getPen() public void duplicateOnto(ActorState other) } package model; public class UserCommands extends Environment { } package util; public class ReflectionUtils { public static Object newInstanceOf(String className, Object... params) public static Object newInstanceOf(String className, Object... params) public static Constructor getConstructor(Class c, Object... params) public static boolean paramListMatches (Class[] c1, Class[] c2) public static Class[] toClassArray(Object... params) } package util; public class Utils { public static Object[] reverse(Object[] arr) public static boolean doubleEqual(double d1, double d2) public static Variable listContains(Collection list, String name) public static Variable listContains(Environment gvars, String name) } package view.canvas; public class Canvas extends View { public Canvas(Controller controller, double width, double height) public void render(TurtleLog log) throws OutOfBoundsException public Point findNextPoints(ActorState next) public TurtleView getTurtleView() public boolean inCanvasBounds(double xPos, double yPos) public void setBackgroundColor(Color color) public void setPenColor(Color color) public ActorState getCurrentState() public static double getCanvasWidth() public static double getCanvasHeight() } package view.canvas; public class ToroidalCanvas extends Canvas{ public ToroidalCanvas(Controller controller, double width, double height) public Point findNextPoints(ActorState next) } package view; public class CommandHistoryView extends EnvironmentListView { public CommandHistoryView(Controller controller, double width, double height) public String getLabelString() } package view; public class Console extends View { public Console(Controller controller, double width, double height) public void setText(String text, TextType type) public void appendText(String text, TextType type) } package view; public interface Displayable { } package view; public class DisplayLabelReader { public DisplayLabelReader(String fileLocation) public String getLabel(String value) } package view; public class Editor extends View { public Editor(Controller controller, double width, double height) public void setText(String text) public void appendText(String text) public void runScript() public void clearText() } package view; public abstract class EnvironmentListView extends View { public EnvironmentListView(Controller controller, double width, double height) abstract public String getLabelString(); public void update(Environment environment) public void handle(MouseEvent click) } package view; public class EnvironmentView extends View { public EnvironmentView(Controller controller, double width, double height) public GlobalVarsView getGlobalVarsView() public UserCommandsView getUserCommandsView() public CommandHistoryView getCommandHistoryView() } package view.floating; public abstract class FloatingView extends View { public FloatingView(Controller controller) public void show() public void close() } package view.floating; public class FloatingViewManager { public FloatingViewManager(Controller controller) public void show(Class viewType) } package view.floating; public class PenPropertyView extends FloatingView { public PenPropertyView(Controller controller) } package view.floating; public class TurtleStateView extends FloatingView { public TurtleStateView(Controller controller) } package view; public class GlobalVarsView extends EnvironmentListView { public GlobalVarsView(Controller controller, double width, double height) public String getLabelString() } package view; public class MainView { public MainView(Controller controller) public void init() public Canvas getCanvas() public Editor getEditor() public Console getConsole() public EnvironmentView getEnvironmentView() } package view; public class MenuView extends View { public MenuView(Controller controller, double width, double height) } package view; public class TurtleView extends View { public TurtleView(Controller controller, public TurtleView(Controller controller, double width, double height) public void setImage(Image image) public void setPositionX(double x) public void setPositionY(double y) public void setDirection(double degrees) public void setVisible(boolean visible) public ImageView getImageView() } package view; public class UserCommandsView extends EnvironmentListView { public UserCommandsView(Controller controller, double width, double height) public String getLabelString() } package view; public class UserControls extends View { public UserControls(Controller controller, double width, double height) } package view; public abstract class View implements Displayable { public View(Controller controller, double width, double height) public Node getUI() }