package util; public class RegexMatching extends Parser { public RegexMatching() } package util; public abstract class Parser { protected Parser() protected void setPatterns(String language) public String getVariableType(String text) throws InvalidCommandException public Pattern getValue(String text) throws InvalidCommandException } package util; public class CommandMatching extends Parser { public CommandMatching(String language) public CommandMatching() } package util; public class ArgumentMatching extends Parser { public ArgumentMatching() } package util; public class PositionMatching extends Parser { public PositionMatching() } package Controller; public interface HistoryObserver extends Observer { void onHistoryUpdated(String newCommand); } package Controller; public class Controller implements ButtonObserver { public Controller(LogoUI view) public void initializeObservers() public void onEvent(String buttonId) public void onHistoryUpdated() } package Controller.Exception; public class InvalidArgumentException extends Exception { public InvalidArgumentException(String message) } package Controller.Exception; public class InvalidCommandException extends Exception { public InvalidCommandException(String message) } package Controller.Exception; public class InvalidFileException extends Exception { public InvalidFileException() } package Controller.Exception; public class MissingArgumentException extends Exception { public MissingArgumentException(String message) } public class Main extends Application implements ButtonObserver { public void start(Stage primaryStage) throws Exception public void onEvent(String buttonId) } package Model; public class Turtle implements Observable { public static List variables public static List userCommands public Turtle(double x, double y, double direction) public static boolean containsKey(String varName) public static Variable getVariable(String varName) public static boolean containsCommand(String keyword) public static Token getUserCommand(String keyword) public void register(TurtleObserver observer) public void remove(TurtleObserver observer) public void notifyObservers() public void setLocation(double x, double y) public void updateAngle(double newAngle) public void addHistory(Command command) public void registerHistoryObserver(HistoryObserver observer) public List getHistory() public Pen getPen() public double getXCoordinate() public double getYCoordinate() public double getDirection() public boolean getStatus() public void show() public void hide() } package Model.Observer; public interface ButtonObserver extends Observer { void onEvent(String buttonId); } package Model.Observer; public interface Observable { void register(T observer); void remove(T observer); void notifyObservers(); } package Model.Observer; public interface Observer { } package Model.Observer; public interface TurtleObserver { void updateOnPosition(double x, double y); void updateOnDirection(double angle); } package Model; public class TurtleSpace { } package Model; public class Interpreter { public Interpreter() public Double processInput(String rawInput, Turtle turtle) } package Model; public class History implements Observable { public History() public void add(Command command) public List getHistory() public void setObservers(List observers) public void register(HistoryObserver observer) public void remove(HistoryObserver observer) public void notifyObservers() } package Model; public class Pen { public Pen() public void activate() public void deactivate() public boolean getStatus() } package Model; public class XMLReader { public XMLReader(String language) public List loadInstructionData() throws ParserConfigurationException, IOException, SAXException } package Model.Command.Turtle; public class Home extends Command { public Home(List paramList) public Double execute() } package Model.Command.Turtle; public class Right extends Command { public Right(List paramList) public Double execute() } package Model.Command.Turtle; public class PenUp extends Command { public PenUp(List paramList) public Double execute() } package Model.Command.Turtle; public class SetTowards extends Command { public SetTowards(List paramList) public Double execute() } package Model.Command.Turtle; public class SetHeading extends Command { public SetHeading(List paramList) public Double execute() } package Model.Command.Turtle; public class Forward extends Command { public Forward(List paramList) public Double execute() } package Model.Command.Turtle; public class Left extends Command { public Left(List paramList) public Double execute() } package Model.Command.Turtle; public class SetPosition extends Command { public SetPosition(List paramList) public Double execute() } package Model.Command.Turtle; public class PenDown extends Command { public PenDown(List paramList) public Double execute() } package Model.Command.Turtle; public class ShowTurtle extends Command { public ShowTurtle(List paramList) public Double execute() } package Model.Command.Turtle; public class ClearScreen extends Command { public ClearScreen(List paramList) public Double execute() } package Model.Command.Turtle; public class Backward extends Command { public Backward(List paramList) public Double execute() } package Model.Command.Turtle; public class HideTurtle extends Command { public HideTurtle(List paramList) public Double execute() } package Model.Command.UserDefined; public class MakeVariable extends Command { public MakeVariable(List paramList) public Double execute() } package Model.Command.UserDefined; public class UserCommand extends Command { protected UserCommand(List paramList) public Double execute() public void setConfiguration(String name, String[] varNames, String content) public String getName() } package Model.Command.UserDefined; public class MakeUserInstruction extends Command { public MakeUserInstruction(List paramList) public Double execute() } package Model.Command.Math; public class Tangent extends Command { public Tangent(List paramList) public Double execute() throws ArithmeticException } package Model.Command.Math; public class Quotient extends Command { public Quotient(List paramList) public Double execute() } package Model.Command.Math; public class Pi extends Command { public Pi(List paramList) public Double execute() } package Model.Command.Math; public class Product extends Command { public Product(List paramList) public Double execute() } package Model.Command.Math; public class Remainder extends Command { public Double execute() } package Model.Command.Math; public class SquareRoot extends Command { public SquareRoot(List paramList) public Double execute() } package Model.Command.Math; public class Difference extends Command { public Difference(List paramList) public Double execute() } package Model.Command.Math; public class Arctangent extends Command { public Arctangent(List paramList) public Double execute() } package Model.Command.Math; public class Sum extends Command { public Sum(List paramList) public Double execute() } package Model.Command.Math; public class RandomRange extends Command { public RandomRange(List paramList) public Double execute() } package Model.Command.Math; public class Cosine extends Command { public Cosine(List paramList) public Double execute() } package Model.Command.Math; public class Random extends Command { public Random(List paramList) public Double execute() } package Model.Command.Math; public class Sine extends Command { public Sine(List paramList) public Double execute() } package Model.Command.Math; public class Power extends Command { public Power(List paramList) public Double execute() } package Model.Command.Math; public class Minus extends Command { public Minus(List paramList) public Double execute() } package Model.Command.Math; public class NaturalLog extends Command { public NaturalLog(List paramList) public Double execute() } package Model.Command.Boolean; public class LessThan extends Command { public LessThan(List paramList) public Double execute() } package Model.Command.Boolean; public class And extends Command { public And(List paramList) public Double execute() } package Model.Command.Boolean; public class NotEqual extends Command { public NotEqual(List paramList) public Double execute() } package Model.Command.Boolean; public class GreaterEqual extends Command { public GreaterEqual(List paramList) public Double execute() } package Model.Command.Boolean; public class Not extends Command { public Not(List paramList) public Double execute() } package Model.Command.Boolean; public class GreaterThan extends Command { public GreaterThan(List paramList) public Double execute() } package Model.Command.Boolean; public class LessEqual extends Command { public LessEqual(List paramList) public Double execute() } package Model.Command.Boolean; public class Equal extends Command { public Equal(List paramList) public Double execute() } package Model.Command.Boolean; public class Or extends Command { public Or(List paramList) public Double execute() } package Model.Command.Control; public class Repeat extends Command { public Repeat(List paramList) public Double execute() } package Model.Command.Control; public class DoTimes extends Command { public DoTimes(List paramList) public Double execute() } package Model.Command.Control; public class IfElse extends Command { public IfElse(List paramList) public Double execute() } package Model.Command.Control; public class If extends Command { public If(List paramList) public Double execute() } package Model.Command.Control; public class For extends Command { public For(List paramList) public Double execute() } package Model.Command.TurtleQuery; public class Heading extends Command { public Heading(List paramList) public Double execute() } package Model.Command.TurtleQuery; public class XCoordinate extends Command { public XCoordinate(List paramList) public Double execute() } package Model.Command.TurtleQuery; public class YCoordinate extends Command { public YCoordinate(List paramList) public Double execute() } package Model.Command.TurtleQuery; public class IsPenDown extends Command { public IsPenDown(List paramList) public Double execute() } package Model.Command.TurtleQuery; public class IsShowing extends Command { public IsShowing(List paramList) public Double execute() } package Model.TokenType; public class TokenFactory { public TokenFactory(String language) public Token generate(String type, String keyword) } package Model.TokenType; public abstract class Command extends Function { protected Command(List paramList) public abstract Double execute() protected List getParameter() public void setParameter(List param) public void attach(Turtle t) public boolean noTurtle() public int getParamReq() public void setParamReq(int num) public String toString() } package Model.TokenType; public class ListOpen extends Token { public ListOpen(String type, String keyword) } package Model.TokenType; public class Constant extends Token { public Constant(String type, String value) } package Model.TokenType; public class Variable extends Token { public Variable(String type, String value) } package Model.TokenType; public class Comment extends Token { public Comment(String type, String content) } package Model.TokenType; public class Token { public Token(String type, String content, boolean status) public boolean isParamStatus() public Double getValue() public String getType() public String toString() public void setValue(Double value) public String getContent() } package Model.TokenType; public class BodyToken extends Token { public BodyToken(String type, String content) } package Model.TokenType; public class Function extends Token { public Function(String type, String keyword) } package Model.TokenType; public class ListClose extends Token { public ListClose(String type, String keyword) } package Model; public class Model { } package View.toggleableViews; public class HistoryToggleableView extends ToggleableView implements HistoryObserver { public HistoryToggleableView() protected ScrollPane makeView() public void update(List info) public void onHistoryUpdated(String newCommand) } package View.toggleableViews; public class VariablesToggleableView extends ToggleableView { public VariablesToggleableView() protected ScrollPane makeView() public void update(List info) } package View.toggleableViews; public abstract class ToggleableView { public ToggleableView() public ToggleableView(int maxWidth, int maxHeight) protected abstract ScrollPane makeView(); protected Button makeBlankButton() protected void makeButton(String id, String text) protected void makeButton(String id, ImageView image) protected void hideView() protected void showView() public Button getButton() protected void setView(ScrollPane view) public Node getBox() public abstract void update(List info); } package View.toggleableViews; public class FunctionsToggleableView extends ToggleableView { public FunctionsToggleableView() protected ScrollPane makeView() public void update(List info) } package View.toggleableViews; public class ToggleablePane { public ToggleablePane() public void addView(ToggleableView view) public void removeView(ToggleableView view) public void switchToView(ToggleableView newView) public VBox getPane() public void setId(String id) public void updateHistory(List history) public ToggleableView getView(String name) } package View.toggleableViews; public class CustomizeToggleableView extends ToggleableView { public CustomizeToggleableView() protected ScrollPane makeView() public void update(List info) } package View.toggleableViews; public class HelpToggleableView extends ToggleableView { public HelpToggleableView() protected ScrollPane makeView() public void update(List info) } package View.trailclasses; public class LineTrailMaker extends TrailMaker { protected Node createTrailInLine(double startx, double starty, double endx, double endy) public void updateTrail(Node trail) } package View; public abstract class LogoUI { public LogoUI(String language) public LogoUI() public abstract Scene makeScene(Stage primaryStage); public abstract void updateLanguage(String language); public abstract String getCommandsText(); public abstract void populateUserInput(String preset); public void setButtonObserver(ButtonObserver buttonObserver) public void displayError(String message) public TurtleObserver getCanvas() protected Button makeButton (String property) protected void setMyCanvas(Canvas canvas) protected Canvas getMyCanvas() protected Node setID (String id, Node node) protected ResourceBundle getMyResources() protected String getDefaultStylesheet() public abstract void updateHistory(List history); public abstract HistoryObserver getHistoryView(); } package View; public abstract class TrailMaker { public TrailMaker() public TrailMaker(Color lineColor) protected abstract Node createTrailInLine(double startx, double starty, double endx, double endy); public abstract void updateTrail(Node trail); public Node drawTrailLine(double startx, double starty, double endx, double endy) public void setTrailColor(Paint newColor) public Paint getTrailColor() public void updateTrails(ArrayList trails) } package View.viewturtles; public class ViewTurtle implements TurtleUI { public ViewTurtle() public void addToPane(Pane myPane) public void setPosition(double x, double y) public Dimension currentPosition() public double currentRotation() public void setRotation(double degrees) public void addToAnimation(SequentialTransition theTransition) public void addToAnimation(ParallelTransition theAnimation) public Dimension getSize() public void setSize(double x, double y) public void changeImage(Image picture) public Image getImage() public void setColor(Paint color) public Paint getCurrentColor() public void setOpacity(double opacity) public double getOpacity() public void setPenDown() public void pickPenUp() public boolean isPenActive() } package View.canvasclasses; public class DefaultCanvas extends Canvas { public DefaultCanvas() public DefaultCanvas(double myWinWidth, double myWinHeight) protected void initializeCanvas(double initWindowWidth, double initWindowHeight) protected TurtleUI createTurtle() public void addToGridPane(GridPane currPane, int colIndex, int rowIndex, int colSpan, public void clear() public void update() public boolean changeAnimationSpeed(double speed) public Dimension getSize() public void updateOnPosition(double x, double y) public void updateOnDirection(double angle) protected TurtleUI getMyTurtle() } package View; public interface TurtleUI { void addToPane(Pane myPane); void setPosition(double x, double y); * (0,0) is center. Dimension currentPosition(); * the turtle facing straight up. (so pi/2 should be facing left). double currentRotation(); void setRotation(double radians); void addToAnimation(SequentialTransition theAnimation); void addToAnimation(ParallelTransition theAnimation); Dimension getSize(); void setSize(double width, double height); void changeImage(Image picture); Image getImage(); void setColor(Paint color); Paint getCurrentColor(); void setOpacity(double opacity); double getOpacity(); void setPenDown(); void pickPenUp(); boolean isPenActive(); } package View.viewclasses; public class DefaultView extends LogoUI { public DefaultView(String language) public Scene makeScene(Stage primaryStage) public void updateLanguage(String language) public String getCommandsText() public void populateUserInput(String preset) public void updateHistory(List history) public HistoryObserver getHistoryView() protected Canvas createCanvas(double windowWidth, double windowHeight) } package View.viewclasses; public class LanguageSelectionView { public LanguageSelectionView(Stage stage) public void setObserver(ButtonObserver observer) } package View; public class TurtleAnimator { public TurtleAnimator(TurtleUI turtleToAnimate) public Transition animateLineMovement(double endX, double endY, Optional trail) public Transition animateLineMovement(double endX, double endY) public Transition animateRotation(double rotateBy) public SequentialTransition makeAnimation(Transition element) public void playSavedAnimations() public void playAnimation(Animation animation) public Animation makeAnimationsFromSaves() public void clearSavedAnimations() public void setSpeed(double speed) public double getSpeed() } package View; public abstract class Canvas implements TurtleObserver { public Canvas() public Canvas(double initWindowWidth, double initWindowHeight) public abstract void addToGridPane(GridPane currPane, int colIndex, int rowIndex, int colSpan, public abstract void update(); public abstract void clear(); public abstract boolean changeAnimationSpeed(double speed); public abstract Dimension getSize(); protected abstract void initializeCanvas(double initWindowWidth, double initWindowHeight); }