package ide; public class IDEModel { public IDEModel(Controller.GroupRec gr, Controller controller) public void readTxt(String txt) public IDEView getIdeView() public void setDark() public void setLight() } package ide.handling; public class Parser { public Parser(String language) public void setLanguage(String language) public List> getMySymbols() public List parse(String input) public String removeComments(String input) public List splitText(String input) public boolean isEmpty(String input) } package ide.handling; public class Interpreter { public Interpreter(String language) public Interpreter() public void setLanguage(String language) throws UnsupportedLanguageException public String getLanguage() public List interpretInput(String input) public List getExpressionsFromInput(String input) public ResourceBundle getErrorResources() } package ide.handling; public class Evaluator { public List getExecutionStatements(List words) } package ide.Exceptions; public class MissingParameterException extends ParameterException public MissingParameterException(int expressionsLeft) public MissingParameterException(String message) } package ide.Exceptions; public class ParameterException extends RuntimeException public ParameterException(int expressionsLeft) public ParameterException(String message) } package ide.Exceptions; public class ExtraParameterException extends ParameterException { public ExtraParameterException(int expressionsLeft) public ExtraParameterException(String message) } package ide.Exceptions; public class InvalidInputException extends RuntimeException public InvalidInputException(String message) } package ide.Exceptions; public class UnsupportedLanguageException extends RuntimeException { public UnsupportedLanguageException(String message) } package ide; public class IDEView extends ViewModule { public IDEView(Controller.GroupRec rec, IDEModel model) public TextField getTextField() } package ide.expression; public class Xcor implements Expression { public Xcor() public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class IdeInteger implements Expression { public IdeInteger(int value) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(TurtleModel tm) public int execute(List values, TurtleModel tm) public int getValue() public String toString() } package ide.expression; public class Multiply implements Expression { public Class getType() public int numParams() public boolean evaluationEnder() public boolean isExecutable() public Expression getExecutable(List values) public int execute(TurtleModel tm) public int execute(List values, TurtleModel tm) public Expression evaluate(List values) } package ide.expression; public class Home implements Expression { public Home() public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class Right implements Expression { public Right(int degrees) public Right() public void setDist(int distance) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class PenUp implements Expression { public PenUp() public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class SetTowards implements Expression { public SetTowards() public void setDist(int x, int y) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class Sum implements Expression { public Sum() public void addVals(int a, int b) public Class getType() public int numParams() public boolean evaluationEnder() public Expression getExecutable(List values) public int execute(TurtleModel tm) public int execute(List values, TurtleModel tm) public Expression evaluate(List values) public int evaluate(TurtleModel tm) } package ide.expression; public class SetHeading implements Expression { public SetHeading() public void setHeading(int degrees) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public interface Expression { Object getType(); //The expressions don't implement this in a useful way yet int numParams(); boolean evaluationEnder(); //IE Close Bracket Expression evaluate(List values); boolean isExecutable(); Expression getExecutable(List values); //I don't love how non-executable's need to implement this int execute(TurtleModel tm); int execute(List values, TurtleModel tm); } package ide.expression; public class Forward implements Expression { public Forward() public void setDist(int distance) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) public String toString() } package ide.expression; public class Left implements Expression { public Left(int degrees) public Left() public void setDist(int distance) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class SetPosition implements Expression { public SetPosition() public void setDist(int x, int y) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class IdeBoolean implements Expression { public IdeBoolean(boolean value) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(TurtleModel tm) public int execute(List values, TurtleModel tm) public boolean getValue() } package ide.expression; public class PenDown implements Expression { public PenDown() public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class ShowTurtle implements Expression { public ShowTurtle() public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class ClearScreen implements Expression { public ClearScreen() public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package ide.expression; public class Backward implements Expression { public Backward() public void setDistance(int distance) public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) public String toString() } package ide.expression; public class Or implements Expression { public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(TurtleModel tm) public int execute(List values, TurtleModel tm) } package ide.expression; public class HideTurtle implements Expression { public HideTurtle() public Class getType() public int numParams() public boolean evaluationEnder() public Expression evaluate(List values) public boolean isExecutable() public Expression getExecutable(List values) public int execute(List values, TurtleModel tm) public int execute(TurtleModel tm) } package turtle; public abstract class ViewModule { public record ViewJFX(int width, int height, int x, int y, String backgroundID) public ViewModule(Controller.GroupRec rec, ViewJFX turtleViewParams) protected void setRelX(Node item, int x) protected void setRelY(Node item, int y) protected void addNode(Node item) protected void removeNode(Node item) protected Button makeButton(String txt, int x, int y) protected ComboBox makeCombo(String [] items, int x, int y, int width, int height) protected TextField makeTxtField(String hint, int x, int y, int width, int height) protected Button makeButton(String txt, int x, int y, int width, int height) } package turtle; public class TurtleView extends ViewModule { public static final Color TRANSPARENT public TurtleView(Controller.GroupRec gr, Turtle turtle) public void setupTurtle(Turtle turtle) public void penUp() public void penDown() public void update() public GraphicsContext getGc() public void addTurtle(Turtle turtle) public void setActiveTurtle(Turtle turtle) } package turtle; public class TurtleController { } package turtle; public class Turtle extends ImageView { public static final Color TRANSPARENT public Turtle(int x, int y, int direction) public void move(int distance) public void rotate(int degrees) public void home() public int getDirection() public void goTo(int x, int y) public void setTowards(int newDirection) public double getTurtleX() public double getTurtleY() public void changeImage(File imgFile) public void penUp() public void penDown() public void update() public GraphicsContext getGc() public Canvas getCanvas() } package turtle; public class TurtleModel { public TurtleModel(Controller.GroupRec gr) public void runCommands(List commands) public void startAnimation(List exeList) public Turtle getActiveTurtle() public List getMyTurtles() public TurtleView getTurtleView() public double remapCoordinate(double coordinate) public void setActiveTurtle(Turtle t) public void addTurtle(Turtle t) public void clearTurtles() } package util; public class RandomExpressionGenerator public static final List> SUPPORTED_COMMANDS public static final List WHITESPACE_CHARACTERS public RandomExpressionGenerator(String language, int maxInt) public RandomExpressionGenerator(String language) public RandomExpressionGenerator() public Expression generateRandomCommand() public Expression generateRandomNumberExpression() public Expression generateRandomExpression () public String getExpressionStringRandom (Expression expression) public String getExpressionStringAbbreviated (Expression expression) public String getExpressionStringLong (Expression expression) public List generateRandomListOfExpressions(int length) public String toAbbreviated(String input) public String toLong(String input) public String generateRandomExpressionsString(int length) public String generateRandomExpressionsStringWithComments(int length) public int getMaxInt() public void setMaxInt(int maxInt) public String getLanguage() public void setLanguage(String language) } package controller; public class Controller { public record GroupRec(Group root, Scene scene) public Controller(Group root, Scene scene) public void interpretSLOGO(String txt) public TurtleModel getTurtleModel() /*public TurtleView getTurtleView() public IDEModel getIDEModel() public IDEView getIDEView() public RefsModel getRefsModel() public void sendIdeTxt(String txt) public void setDark() public void setLight() } package factories; public class StrokeColorButtonFactory { public static ColorPicker createButton(TurtleView tv, Paint color) } package factories; public class ImageButtonFactory { public Button createButton(String text, Turtle turtle) } package factories; public class ButtonFactory { public Button createButton(String text, Runnable action) } package refs.Tabs; public class FileTab extends TurtleTabs { public FileTab(String name, RefsView rView) protected void initialize(String filepath) protected HBox makeHbox() protected VBox makeVbox() protected TextArea makeTextArea(String s) /*public void setFilePath(String path) public ScrollPane getScrollPane() public VBox getRefs() public String getStringFromRefs(int index) public void update() } package refs.Tabs.SubTabs; public class HistoryTab extends TurtleTabs { public HistoryTab(String name, RefsView rView) public void add() public void update() } package refs.Tabs.SubTabs; public class StatusTab extends InternalTab { public StatusTab(String name, RefsView rView, TurtleModel tm) public void update() } package refs.Tabs.SubTabs; public class ReferencesTab extends FileTab { public ReferencesTab(String name, RefsView refsView) } package refs.Tabs.SubTabs; public class DocumentationTab extends FileTab { public DocumentationTab(String name, RefsView rView) protected void initialize(String filepath) } package refs.Tabs.SubTabs; public class LibraryTab extends FileTab { public LibraryTab(String name, RefsView rView) public void add() } package refs.Tabs; public class InternalTab extends TurtleTabs { public InternalTab(String name, RefsView rView, TurtleModel tm) protected void initializeTurtles() public void update() } package refs.Tabs; public abstract class TurtleTabs extends Tab { public TurtleTabs(String name) public abstract void update(); } package refs; public class RefsModel { public RefsModel(Controller.GroupRec gr, Controller controller, TurtleModel tm) public void passRefsViewTxt(String txt) public RefsView getRefsView() public TurtleModel getTurtleModel() public void update() } package refs; public class RefsView extends ViewModule { public RefsView(Controller.GroupRec gr, RefsModel rModel) public void initialize() public void sendTextToIDE(String txt) public DocumentationTab getDocumentationTab() public HistoryTab getHistoryTab() public LibraryTab getLibraryTab() public ReferencesTab getReferencesTab() public void update() } package refs; public class XmlHandler { public XmlHandler(String fileName) public List createFormattedReferences() public List createFormattedDocumentation() public String getDocumentationDescription() } public class Main extends Application { public void start (Stage stage) }