diff options
| author | Benjamin Culkin <bjculkin@sitri.goetia> | 2023-11-16 01:16:37 +0000 |
|---|---|---|
| committer | Benjamin Culkin <bjculkin@sitri.goetia> | 2023-11-16 01:16:37 +0000 |
| commit | 696c69d6c32226b57503586a5b0d3fdfa610e41c (patch) | |
| tree | b0288dc262fcbf5672bd3998f49e9b30a15f9a20 | |
| parent | 37da63640924937b90ea8c1a6a0c6e7318788ed5 (diff) | |
This fleshes out a basic parser w/ a calculator grammar and the skeleton
for an evaluator
19 files changed, 405 insertions, 91 deletions
diff --git a/winot/winot-core/.classpath b/winot/winot-core/.classpath index b6a7afa..5d2fb8e 100644 --- a/winot/winot-core/.classpath +++ b/winot/winot-core/.classpath @@ -9,6 +9,7 @@ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <attributes> <attribute name="maven.pomderived" value="true"/> + <attribute name="optional" value="true"/> </attributes> </classpathentry> <classpathentry kind="src" output="target/test-classes" path="src/test/java"> @@ -22,17 +23,17 @@ <attributes> <attribute name="test" value="true"/> <attribute name="maven.pomderived" value="true"/> + <attribute name="optional" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> <attributes> <attribute name="maven.pomderived" value="true"/> - <attribute name="module" value="true"/> </attributes> </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"> <attributes> - <attribute name="module" value="true"/> + <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="output" path="target/classes"/> diff --git a/winot/winot-core/.gitignore b/winot/winot-core/.gitignore new file mode 100644 index 0000000..b83d222 --- /dev/null +++ b/winot/winot-core/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/winot/winot-core/.settings/org.eclipse.jdt.core.prefs b/winot/winot-core/.settings/org.eclipse.jdt.core.prefs index d089a9b..29fe717 100644 --- a/winot/winot-core/.settings/org.eclipse.jdt.core.prefs +++ b/winot/winot-core/.settings/org.eclipse.jdt.core.prefs @@ -1,11 +1,11 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 -org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=17 +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/winot/winot-core/pom.xml b/winot/winot-core/pom.xml index 71ac2c5..245bea4 100644 --- a/winot/winot-core/pom.xml +++ b/winot/winot-core/pom.xml @@ -1,29 +1,43 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <groupId>com.ashardalon</groupId> - <artifactId>winot</artifactId> - <version>0.0.1-SNAPSHOT</version> + <groupId>com.ashardalon</groupId> + <artifactId>winot</artifactId> + <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>winot-core</artifactId> <name>Core for Winot language</name> - <description>Contains the core for using the Winot language -</description> + <description> + Contains the core for using the Winot language + </description> + <build> + <sourceDirectory>src/main/java</sourceDirectory> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.5.1</version> + <configuration> + <source>11</source> + <target>11</target> + </configuration> + </plugin> + </plugins> + </build> <dependencies> - <dependency> - <groupId>bjc</groupId> - <artifactId>BJC-Utils2</artifactId> - <version>2.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>bjc</groupId> - <artifactId>JPratt</artifactId> - <version>0.0.2-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>io.github.bculkin2442</groupId> - <artifactId>esodata</artifactId> - <version>2.0-SNAPSHOT</version> - </dependency> + <dependency> + <groupId>bjc</groupId> + <artifactId>BJC-Utils2</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>bjc</groupId> + <artifactId>JPratt</artifactId> + <version>0.0.2-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>io.github.bculkin2442</groupId> + <artifactId>esodata</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> </dependencies> -</project>
\ No newline at end of file +</project> diff --git a/winot/winot-core/src/main/java/com/ashardalon/winot/core/TokenType.java b/winot/winot-core/src/main/java/com/ashardalon/winot/core/TokenType.java index 5387328..1757be5 100644 --- a/winot/winot-core/src/main/java/com/ashardalon/winot/core/TokenType.java +++ b/winot/winot-core/src/main/java/com/ashardalon/winot/core/TokenType.java @@ -12,6 +12,10 @@ public enum TokenType { */ TERMINAL, /** + * Result of evaluation + */ + RESULT, + /** * Raw token. Hasn't been fully processed yet */ RAW, @@ -20,6 +24,19 @@ public enum TokenType { * 'def' special-object initiator */ DEF, + /** + * + operator + */ + ADD, + /** + * - operator + */ + MINUS, + /** / operator */ + DIVIDE, + /** * operator */ + MULTIPLY, + // Represent literals of various types /** * Double-quoted string. diff --git a/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotApp.java b/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotApp.java index 019ce49..fdf0e59 100644 --- a/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotApp.java +++ b/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotApp.java @@ -2,14 +2,14 @@ package com.ashardalon.winot.core; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.util.HashMap; +import java.util.Map; import bjc.data.*; import bjc.pratt.*; -import bjc.pratt.commands.InitialCommand; import bjc.pratt.commands.impls.InitialCommands; -import bjc.pratt.tokens.*; +import bjc.pratt.commands.impls.NonInitialCommands; import bjc.utils.cli.StreamTerminal; -import bjc.utils.parserutils.*; import bjc.utils.parserutils.splitter.*; /** @@ -24,17 +24,30 @@ public class WinotApp { * @param args Currently unused CLI args */ public static void main(String[] args) { + Map<String, TokenType> operators = new HashMap<>(); + + operators.put("def", TokenType.DEF); + + operators.put("+", TokenType.ADD); + operators.put("*", TokenType.MULTIPLY); + operators.put("-", TokenType.MINUS); + operators.put("/", TokenType.DIVIDE); + ConfigurableTokenSplitter baseSplitter = new ConfigurableTokenSplitter(true); - baseSplitter.addMultiDelimiters(" "); + + //baseSplitter.addMultiDelimiters(" "); + + baseSplitter.addSimpleDelimiters("+", "-", "*", "/"); + baseSplitter.compile(); ExcludingTokenSplitter exclSplitter = new ExcludingTokenSplitter(baseSplitter); - FilteredTokenSplitter filtSplitter = new FilteredTokenSplitter(exclSplitter, (tok) -> !tok.equals("")); + FilteredTokenSplitter filtSplitter = new FilteredTokenSplitter(exclSplitter, (tok) -> !tok.equals("") || !tok.equals(" ")); WinotContext state = new WinotContext(); - PrattParser<TokenType, String, WinotContext> parser = new PrattParser<>(); + PrattParser<TokenType, WinotValue, WinotContext> parser = new PrattParser<>(); parser.addInitialCommand(TokenType.LITERAL, InitialCommands.leaf()); parser.addInitialCommand(TokenType.DQ_STR, InitialCommands.leaf()); @@ -42,14 +55,20 @@ public class WinotApp { // using 'var' because otherwise the type is some 40+ characters involving repeating the command type twice // Also, have to specify args to 'branch' since the compiler can't guess them otherwise - var defBuilder = InitialCommands.<TokenType, String, WinotContext>branch(); - InitialCommand<TokenType, String, WinotContext> defCommand = defBuilder.add(TokenType.DEF, null).build(); + var defBuilder = InitialCommands.<TokenType, WinotValue, WinotContext>branch(); + var defCommand = defBuilder.add(TokenType.DEF, null).build(); parser.addInitialCommand(TokenType.DEF, defCommand); + + parser.addNonInitialCommand(TokenType.ADD, NonInitialCommands.infixLeft(10)); + parser.addNonInitialCommand(TokenType.MINUS, NonInitialCommands.infixLeft(10)); + parser.addNonInitialCommand(TokenType.MULTIPLY, NonInitialCommands.infixLeft(11)); + parser.addNonInitialCommand(TokenType.DIVIDE, NonInitialCommands.infixLeft(11)); StreamTerminal terminal = new StreamTerminal(new InputStreamReader(System.in), new OutputStreamWriter(System.out), "/", null); IntHolder comNo = new IntHolder(); - terminal.setMode(new WinotMainMode(terminal, comNo, parser, state, filtSplitter)); + WinotMainMode mode = new WinotMainMode(terminal, comNo, parser, state, filtSplitter, operators); + terminal.setMode(mode); terminal.addOutput("0 > "); terminal.run(); diff --git a/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotMainMode.java b/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotMainMode.java index ce8b9ef..1b520df 100644 --- a/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotMainMode.java +++ b/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotMainMode.java @@ -2,12 +2,15 @@ package com.ashardalon.winot.core; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.function.Consumer; import java.util.function.Function; import bjc.data.*; +import bjc.funcdata.ListEx; import bjc.pratt.PrattParser; import bjc.pratt.commands.CommandResult; +import bjc.pratt.commands.CommandResult.Status; import bjc.pratt.tokens.*; import bjc.utils.cli.StreamTerminal; import bjc.utils.parserutils.ParserException; @@ -17,19 +20,21 @@ import bjc.utils.parserutils.splitter.FilteredTokenSplitter; final class WinotMainMode implements Consumer<String> { private final StreamTerminal terminal; private final IntHolder comNo; - private final PrattParser<TokenType, String, WinotContext> parser; + private final PrattParser<TokenType, WinotValue, WinotContext> parser; private final WinotContext state; private final FilteredTokenSplitter filtSplitter; + private final Map<String, TokenType> operators; - WinotMainMode(StreamTerminal terminal, IntHolder comNo, PrattParser<TokenType, String, WinotContext> parser, - WinotContext state, FilteredTokenSplitter filtSplitter) { + WinotMainMode(StreamTerminal terminal, IntHolder comNo, PrattParser<TokenType, WinotValue, WinotContext> parser, + WinotContext state, FilteredTokenSplitter filtSplitter, Map<String, TokenType> operators) { this.terminal = terminal; this.comNo = comNo; this.parser = parser; this.state = state; this.filtSplitter = filtSplitter; + this.operators = operators; } - + @Override public void accept(String str) { List<String> rawTokens = TokenUtils.removeDQuotedStrings(str); @@ -37,31 +42,65 @@ final class WinotMainMode implements Consumer<String> { Function<String, Token<TokenType, String>> tokenzer = (strang) -> { return new SimpleToken<>(strToggle.get(), strang); }; - TransformIterator<String, - Token<TokenType, String>> rawItr = new TransformIterator<>(rawTokens.iterator(), tokenzer); - FlatMapIterator<Token<TokenType, String>, - Token<TokenType, String>> mapItr = new FlatMapIterator<>(rawItr, (tok) -> { - if (tok.getKey() == TokenType.RAW) { - Iterator<String> tknItr = filtSplitter.split(tok.getValue()).toIterable().iterator(); - Function<String, Token<TokenType, String>> literizer = (tokn) -> { - return new SimpleToken<>(TokenType.LITERAL, tokn); - }; - TransformIterator<String, - Token<TokenType, String>> transf = new TransformIterator<>(tknItr, literizer); - return transf; - } - return new SingleIterator<>(tok); - }); - SimpleTokenStream<TokenType, - String> sts = new SimpleTokenStream<>(mapItr, new SimpleToken<>(TokenType.TERMINAL, "")); + var rawItr = new TransformIterator<String, Token<TokenType, String>>(rawTokens.iterator(), tokenzer); + var mapItr = new FlatMapIterator<Token<TokenType, String>, Token<TokenType, WinotValue>>(rawItr, this::toLiteral); + var sts = new SimpleTokenStream<TokenType, WinotValue>(mapItr, new SimpleToken<>(TokenType.TERMINAL, WinotValue.EMPTY)); try { // Prime token stream sts.next(); - CommandResult<TokenType, String> result = parser.parseExpression(0, sts, state, true); - terminal.addOutput(result.toString() + "\n"); + CommandResult<TokenType, WinotValue> result = parser.parseExpression(0, sts, state, true); + terminal.addOutput("Parsed:\n" + result.toString() + "\n"); + if (result.status == Status.SUCCESS) { + var evalRes = result.success().topDownTransform((tok) -> { + // Default to evaluating bottom up + return TopDownTransformResult.PUSHDOWN; + }, (tree) -> { + Token<TokenType,WinotValue> head = tree.getHead(); + switch (head.getKey()) { + case LITERAL: + SimpleToken<TokenType, WinotValue> res = new SimpleToken<>(TokenType.RESULT, head.getValue()); + return new SimpleTree<>(res); + default: + throw new UnsupportedOperationException("Unsupport eval token: " + head.getKey()); + } + }); + terminal.addOutput("Evaluated to: " + evalRes); + } + if (sts.hasNext()) { + terminal.addOutput("Remaining tokens:\n"); + sts.forEachRemaining((tok) -> { + terminal.addOutput("\t" + tok.toString() + "\n"); + }); + } } catch (ParserException pex) { terminal.addOutput(pex.toString() + "\n"); } terminal.addOutput(String.format("%d > ", comNo.incr())); } + + private Iterator<Token<TokenType, WinotValue>> toLiteral(Token<TokenType, String> tok) { + if (tok.getKey() == TokenType.RAW) { + ListEx<String> splist = filtSplitter.split(tok.getValue()); + Iterator<String> tknItr = splist.toIterable().iterator(); + TransformIterator<String, String> splitr; + splitr = new TransformIterator<String, String>(tknItr, String::trim); + + Function<String, Token<TokenType, WinotValue>> literizer; + literizer = (tokn) -> { + if (operators.containsKey(tokn)) { + return new SimpleToken<>(operators.get(tokn), WinotValue.EMPTY); + } else if (tokn.matches("\\d+")) { + WinotValue intVal = WinotValue.integer(Integer.parseInt(tokn)); + return new SimpleToken<>(TokenType.LITERAL, intVal); + } else if (TokenUtils.isDouble(tokn)) { + WinotValue doubleVal = WinotValue.fpLit(Double.parseDouble(tokn)); + return new SimpleToken<>(TokenType.LITERAL, doubleVal); + } + return new SimpleToken<>(TokenType.LITERAL, WinotValue.string(tokn)); + }; + var transf = new TransformIterator<String, Token<TokenType, WinotValue>>(splitr, literizer); + return transf; + } + return new SingleIterator<>(new SimpleToken<>(tok.getKey(), WinotValue.string(tok.getValue()))); + } }
\ No newline at end of file diff --git a/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotValue.java b/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotValue.java new file mode 100644 index 0000000..79b57e9 --- /dev/null +++ b/winot/winot-core/src/main/java/com/ashardalon/winot/core/WinotValue.java @@ -0,0 +1,168 @@ +package com.ashardalon.winot.core; + +import java.util.Objects; + +public class WinotValue { + public enum Type { + /** + * A value that contains nothing + */ + EMPTY, + /** + * A string + */ + STRING, + /** + * An int + */ + INT, + /** + * A double + */ + DOUBLE + } + + public static final class IntegerWinotValue extends WinotValue { + public int val; + + public IntegerWinotValue(int val) { + super(Type.INT); + this.val = val; + } + + @Override + public int hashCode() { + return Objects.hash(val); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + IntegerWinotValue other = (IntegerWinotValue) obj; + return val == other.val; + } + + @Override + public String toString() { + return "IntegerWinotValue [val=" + val + "]"; + } + } + + public static final class DoubleWinotValue extends WinotValue { + public double val; + + public DoubleWinotValue(double val) { + super(Type.DOUBLE); + this.val = val; + } + + @Override + public int hashCode() { + return Objects.hash(val); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + DoubleWinotValue other = (DoubleWinotValue) obj; + return Double.doubleToLongBits(val) == Double.doubleToLongBits(other.val); + } + + @Override + public String toString() { + return "DoubleWinotValue [val=" + val + "]"; + } + } + + public static class TerminalWinotValue extends WinotValue { + public TerminalWinotValue() { + super(Type.EMPTY); + } + + @Override + public String toString() { + return "TerminalWinotValue []"; + } + } + + public static class StringWinotValue extends WinotValue { + private String val; + + public StringWinotValue(String val) { + super(Type.STRING); + this.val = val; + } + + @Override + public int hashCode() { + return Objects.hash(val); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + StringWinotValue other = (StringWinotValue) obj; + return Objects.equals(val, other.val); + } + + @Override + public String toString() { + return "StringWinotValue [val=" + val + "]"; + } + } + + public final Type type; + + protected WinotValue(Type typ) { + this.type = typ; + } + + public static WinotValue EMPTY = new TerminalWinotValue(); + + + public static WinotValue string(String val) { + return new StringWinotValue(val); + } + + + public static WinotValue integer(int val) { + return new IntegerWinotValue(val); + } + + public static WinotValue fpLit(double val) { + return new DoubleWinotValue(val); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + WinotValue other = (WinotValue) obj; + return type == other.type; + } +}
\ No newline at end of file diff --git a/winot/winot-core/src/main/java/module-info.java b/winot/winot-core/src/main/java/module-info.java index 96194a7..c0addf7 100644 --- a/winot/winot-core/src/main/java/module-info.java +++ b/winot/winot-core/src/main/java/module-info.java @@ -5,6 +5,6 @@ */ module com.ashardalon.winot.core { requires bjc.utils; - requires jpratt; requires esodata; + requires jpratt; }
\ No newline at end of file diff --git a/winot/winot-core/tags b/winot/winot-core/tags new file mode 100644 index 0000000..3cdfe0e --- /dev/null +++ b/winot/winot-core/tags @@ -0,0 +1,42 @@ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.8 // +DEF src/main/java/com/ashardalon/winot/core/TokenType.java /^ DEF,$/;" e enum:TokenType file: +DQ_STR src/main/java/com/ashardalon/winot/core/TokenType.java /^ DQ_STR,$/;" e enum:TokenType file: +EMPTY src/main/java/com/ashardalon/winot/core/WinotValue.java /^ EMPTY,$/;" e enum:WinotValue.Type file: +EMPTY src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public static WinotValue EMPTY = new TerminalWinotValue();$/;" f class:WinotValue +LITERAL src/main/java/com/ashardalon/winot/core/TokenType.java /^ LITERAL$/;" e enum:TokenType file: +RAW src/main/java/com/ashardalon/winot/core/TokenType.java /^ RAW,$/;" e enum:TokenType file: +STRING src/main/java/com/ashardalon/winot/core/WinotValue.java /^ STRING$/;" e enum:WinotValue.Type file: +StringWinotValue src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public StringWinotValue(String val) {$/;" m class:WinotValue.StringWinotValue +StringWinotValue src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public static class StringWinotValue extends WinotValue {$/;" c class:WinotValue +TERMINAL src/main/java/com/ashardalon/winot/core/TokenType.java /^ TERMINAL,$/;" e enum:TokenType file: +TerminalWinotValue src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public TerminalWinotValue() {$/;" m class:WinotValue.TerminalWinotValue +TerminalWinotValue src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public static class TerminalWinotValue extends WinotValue {$/;" c class:WinotValue +TokenType src/main/java/com/ashardalon/winot/core/TokenType.java /^public enum TokenType {$/;" g +Type src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public enum Type {$/;" g class:WinotValue +WinotApp src/main/java/com/ashardalon/winot/core/WinotApp.java /^public class WinotApp {$/;" c +WinotContext src/main/java/com/ashardalon/winot/core/WinotContext.java /^public class WinotContext {$/;" c +WinotMainMode src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^ WinotMainMode(StreamTerminal terminal, IntHolder comNo, PrattParser<TokenType, WinotValue, WinotContext> parser,$/;" m class:WinotMainMode +WinotMainMode src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^final class WinotMainMode implements Consumer<String> {$/;" c +WinotValue src/main/java/com/ashardalon/winot/core/WinotValue.java /^public class WinotValue {$/;" c +accept src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^ public void accept(String str) {$/;" m class:WinotMainMode +com.ashardalon.winot.core src/main/java/com/ashardalon/winot/core/TokenType.java /^package com.ashardalon.winot.core;$/;" p +com.ashardalon.winot.core src/main/java/com/ashardalon/winot/core/WinotApp.java /^package com.ashardalon.winot.core;$/;" p +com.ashardalon.winot.core src/main/java/com/ashardalon/winot/core/WinotContext.java /^package com.ashardalon.winot.core;$/;" p +com.ashardalon.winot.core src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^package com.ashardalon.winot.core;$/;" p +com.ashardalon.winot.core src/main/java/com/ashardalon/winot/core/WinotValue.java /^package com.ashardalon.winot.core;$/;" p +com.ashardalon.winot.core src/main/java/com/ashardalon/winot/core/package-info.java /^package com.ashardalon.winot.core;/;" p +comNo src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^ private final IntHolder comNo;$/;" f class:WinotMainMode file: +equals src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public boolean equals(Object obj) {$/;" m class:WinotValue.StringWinotValue +filtSplitter src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^ private final FilteredTokenSplitter filtSplitter;$/;" f class:WinotMainMode file: +hashCode src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public int hashCode() {$/;" m class:WinotValue.StringWinotValue +main src/main/java/com/ashardalon/winot/core/WinotApp.java /^ public static void main(String[] args) {$/;" m class:WinotApp +parser src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^ private final PrattParser<TokenType, WinotValue, WinotContext> parser;$/;" f class:WinotMainMode file: +state src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^ private final WinotContext state;$/;" f class:WinotMainMode file: +string src/main/java/com/ashardalon/winot/core/WinotValue.java /^ public static WinotValue string(String val) {$/;" m class:WinotValue +terminal src/main/java/com/ashardalon/winot/core/WinotMainMode.java /^ private final StreamTerminal terminal;$/;" f class:WinotMainMode file: +val src/main/java/com/ashardalon/winot/core/WinotValue.java /^ private String val;$/;" f class:WinotValue.StringWinotValue file: diff --git a/winot/winot-core/target/classes/META-INF/MANIFEST.MF b/winot/winot-core/target/classes/META-INF/MANIFEST.MF index 0276670..b087487 100644 --- a/winot/winot-core/target/classes/META-INF/MANIFEST.MF +++ b/winot/winot-core/target/classes/META-INF/MANIFEST.MF @@ -1,5 +1,4 @@ -Manifest-Version: 1.0 -Built-By: bjcul -Build-Jdk: 18.0.1 -Created-By: Maven Integration for Eclipse - +Manifest-Version: 1.0
+Build-Jdk-Spec: 17
+Created-By: Maven Integration for Eclipse
+
diff --git a/winot/winot-core/target/classes/META-INF/maven/com.ashardalon/winot-core/pom.properties b/winot/winot-core/target/classes/META-INF/maven/com.ashardalon/winot-core/pom.properties index 242b22b..3c453f4 100644 --- a/winot/winot-core/target/classes/META-INF/maven/com.ashardalon/winot-core/pom.properties +++ b/winot/winot-core/target/classes/META-INF/maven/com.ashardalon/winot-core/pom.properties @@ -1,7 +1,7 @@ #Generated by Maven Integration for Eclipse -#Wed Oct 25 19:34:06 EDT 2023 -artifactId=winot-core -groupId=com.ashardalon -m2e.projectLocation=C\:\\Users\\bjcul\\eclipse-workspace\\winot\\winot-core +#Wed Nov 15 23:55:36 GMT 2023 +m2e.projectLocation=/home/bjculkin/projects/winot/winot/winot-core m2e.projectName=winot-core +groupId=com.ashardalon +artifactId=winot-core version=0.0.1-SNAPSHOT diff --git a/winot/winot-core/target/classes/META-INF/maven/com.ashardalon/winot-core/pom.xml b/winot/winot-core/target/classes/META-INF/maven/com.ashardalon/winot-core/pom.xml index 71ac2c5..245bea4 100644 --- a/winot/winot-core/target/classes/META-INF/maven/com.ashardalon/winot-core/pom.xml +++ b/winot/winot-core/target/classes/META-INF/maven/com.ashardalon/winot-core/pom.xml @@ -1,29 +1,43 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <groupId>com.ashardalon</groupId> - <artifactId>winot</artifactId> - <version>0.0.1-SNAPSHOT</version> + <groupId>com.ashardalon</groupId> + <artifactId>winot</artifactId> + <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>winot-core</artifactId> <name>Core for Winot language</name> - <description>Contains the core for using the Winot language -</description> + <description> + Contains the core for using the Winot language + </description> + <build> + <sourceDirectory>src/main/java</sourceDirectory> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.5.1</version> + <configuration> + <source>11</source> + <target>11</target> + </configuration> + </plugin> + </plugins> + </build> <dependencies> - <dependency> - <groupId>bjc</groupId> - <artifactId>BJC-Utils2</artifactId> - <version>2.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>bjc</groupId> - <artifactId>JPratt</artifactId> - <version>0.0.2-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>io.github.bculkin2442</groupId> - <artifactId>esodata</artifactId> - <version>2.0-SNAPSHOT</version> - </dependency> + <dependency> + <groupId>bjc</groupId> + <artifactId>BJC-Utils2</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>bjc</groupId> + <artifactId>JPratt</artifactId> + <version>0.0.2-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>io.github.bculkin2442</groupId> + <artifactId>esodata</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> </dependencies> -</project>
\ No newline at end of file +</project> diff --git a/winot/winot-core/target/classes/com/ashardalon/winot/core/TokenType.class b/winot/winot-core/target/classes/com/ashardalon/winot/core/TokenType.class Binary files differindex cd5d9e7..bfe59f6 100644 --- a/winot/winot-core/target/classes/com/ashardalon/winot/core/TokenType.class +++ b/winot/winot-core/target/classes/com/ashardalon/winot/core/TokenType.class diff --git a/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotApp.class b/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotApp.class Binary files differindex a2fc97d..1c64ce6 100644 --- a/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotApp.class +++ b/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotApp.class diff --git a/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotContext.class b/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotContext.class Binary files differindex 15ae22b..6dc99a6 100644 --- a/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotContext.class +++ b/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotContext.class diff --git a/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotMainMode.class b/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotMainMode.class Binary files differindex 90a0570..b479652 100644 --- a/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotMainMode.class +++ b/winot/winot-core/target/classes/com/ashardalon/winot/core/WinotMainMode.class diff --git a/winot/winot-core/target/classes/com/ashardalon/winot/core/package-info.class b/winot/winot-core/target/classes/com/ashardalon/winot/core/package-info.class Binary files differindex 54aba6e..2f38b09 100644 --- a/winot/winot-core/target/classes/com/ashardalon/winot/core/package-info.class +++ b/winot/winot-core/target/classes/com/ashardalon/winot/core/package-info.class diff --git a/winot/winot-core/target/classes/module-info.class b/winot/winot-core/target/classes/module-info.class Binary files differindex 254dd2c..a73931e 100644 --- a/winot/winot-core/target/classes/module-info.class +++ b/winot/winot-core/target/classes/module-info.class |
