Skip to content

Commit

Permalink
Reorganize internals (see #84)
Browse files Browse the repository at this point in the history
  • Loading branch information
tomokinakamaru committed Dec 16, 2021
1 parent e2b3f5b commit e346310
Show file tree
Hide file tree
Showing 101 changed files with 461 additions and 453 deletions.
64 changes: 32 additions & 32 deletions src/main/java/silverchain/Silverchain.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,33 @@
import java.util.function.Consumer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.tree.ParseTreeWalker;
import picocli.CommandLine;
import silverchain.internal.JarProperties;
import silverchain.internal.back.parser.JavaTranslator;
import silverchain.internal.front.TreeWalker;
import silverchain.internal.front.parser.AgParser;
import silverchain.internal.backend.builder.JavaTranslator;
import silverchain.internal.front.parser.antlr.AgParser.InputContext;
import silverchain.internal.front.rewriter.FragmentResolver;
import silverchain.internal.front.rewriter.ImportResolver;
import silverchain.internal.front.validator.DuplicateFragmentValidator;
import silverchain.internal.front.validator.DuplicateTypeDeclValidator;
import silverchain.internal.front.validator.ImportConflictValidator;
import silverchain.internal.front.validator.InvalidRangeValidator;
import silverchain.internal.front.validator.UndefinedFragmentValidator;
import silverchain.internal.front.validator.ZeroRepeatValidator;
import silverchain.internal.middle.graph.data.graph.collection.Graphs;
import silverchain.internal.middle.graph.parser.AgCompiler;
import silverchain.internal.middle.graph.rewriter.GraphDeterminizer;
import silverchain.internal.middle.graph.rewriter.GraphReverser;
import silverchain.internal.middle.graph.rewriter.ParamPropagator;
import silverchain.internal.middle.graph.rewriter.ParamRefResolver;
import silverchain.internal.middle.graph.validator.EdgeConflictValidator;
import silverchain.internal.middle.graph.validator.FileCountChecker;
import silverchain.internal.middle.java.ActionInterfaceGenerator;
import silverchain.internal.middle.java.CompilationUnits;
import silverchain.internal.middle.java.JavadocProcessor;
import silverchain.internal.middle.java.NodeClassGenerator;
import silverchain.internal.middle.java.parser.GraphTranslator;
import silverchain.internal.frontend.checker.DuplicateFragmentChecker;
import silverchain.internal.frontend.checker.DuplicateTypeChecker;
import silverchain.internal.frontend.checker.ImportConflictChecker;
import silverchain.internal.frontend.checker.InvalidRangeChecker;
import silverchain.internal.frontend.checker.UndefinedFragmentChecker;
import silverchain.internal.frontend.checker.ZeroRepeatChecker;
import silverchain.internal.frontend.parser.AgParser;
import silverchain.internal.frontend.rewriter.FragmentExpander;
import silverchain.internal.frontend.rewriter.ImportExpander;
import silverchain.internal.middleware.graph.builder.AgCompiler;
import silverchain.internal.middleware.graph.checker.EdgeConflictValidator;
import silverchain.internal.middleware.graph.checker.FileCountChecker;
import silverchain.internal.middleware.graph.data.graph.collection.Graphs;
import silverchain.internal.middleware.graph.rewriter.GraphDeterminizer;
import silverchain.internal.middleware.graph.rewriter.GraphReverser;
import silverchain.internal.middleware.graph.rewriter.ParamPropagator;
import silverchain.internal.middleware.graph.rewriter.ParamRefResolver;
import silverchain.internal.middleware.java.builder.GraphTranslator;
import silverchain.internal.middleware.java.data.CompilationUnits;
import silverchain.internal.middleware.java.rewriter.ActionInterfaceGenerator;
import silverchain.internal.middleware.java.rewriter.JavadocProcessor;
import silverchain.internal.middleware.java.rewriter.NodeClassGenerator;

@CommandLine.Command(name = "silverchain", versionProvider = Silverchain.class, sortOptions = false)
public class Silverchain implements Callable<Integer>, CommandLine.IVersionProvider {
Expand Down Expand Up @@ -88,14 +88,14 @@ public static void run(String... args) {
public void run(InputStream inputStream) throws IOException {
CharStream charStream = CharStreams.fromStream(inputStream);
InputContext ctx = new AgParser().parse(charStream);
TreeWalker.walk(new DuplicateTypeDeclValidator(), ctx);
TreeWalker.walk(new ZeroRepeatValidator(), ctx);
TreeWalker.walk(new InvalidRangeValidator(), ctx);
TreeWalker.walk(new ImportConflictValidator(), ctx);
TreeWalker.walk(new DuplicateFragmentValidator(), ctx);
TreeWalker.walk(new UndefinedFragmentValidator(), ctx);
TreeWalker.walk(new ImportResolver(), ctx);
TreeWalker.walk(new FragmentResolver(), ctx);
ParseTreeWalker.DEFAULT.walk(new DuplicateTypeChecker(), ctx);
ParseTreeWalker.DEFAULT.walk(new ZeroRepeatChecker(), ctx);
ParseTreeWalker.DEFAULT.walk(new InvalidRangeChecker(), ctx);
ParseTreeWalker.DEFAULT.walk(new ImportConflictChecker(), ctx);
ParseTreeWalker.DEFAULT.walk(new DuplicateFragmentChecker(), ctx);
ParseTreeWalker.DEFAULT.walk(new UndefinedFragmentChecker(), ctx);
ParseTreeWalker.DEFAULT.walk(new ImportExpander(), ctx);
ParseTreeWalker.DEFAULT.walk(new FragmentExpander(), ctx);

Graphs graphs = new AgCompiler().compile(ctx);
new GraphReverser().visit(graphs);
Expand Down
11 changes: 0 additions & 11 deletions src/main/java/silverchain/internal/back/parser/JavaTranslator.java

This file was deleted.

3 changes: 3 additions & 0 deletions src/main/java/silverchain/internal/backend/Backend.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package silverchain.internal.backend;

public class Backend {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package silverchain.internal.backend.builder;

import silverchain.internal.backend.data.Files;
import silverchain.internal.middleware.java.data.CompilationUnits;

public class JavaTranslator {

public Files translate(CompilationUnits... units) {
return new Files();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.back;
package silverchain.internal.backend.data;

public class File {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.back;
package silverchain.internal.backend.data;

import java.util.ArrayList;

Expand Down
12 changes: 0 additions & 12 deletions src/main/java/silverchain/internal/front/TreeWalker.java

This file was deleted.

3 changes: 3 additions & 0 deletions src/main/java/silverchain/internal/frontend/Frontend.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package silverchain.internal.frontend;

public class Frontend {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import silverchain.SilverchainException;
import silverchain.internal.front.parser.antlr.AgParser.FragmentDeclContext;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import java.util.HashMap;
import java.util.Map;
import silverchain.internal.front.parser.antlr.AgBaseListener;
import silverchain.internal.front.parser.antlr.AgParser.FragmentDeclContext;

public class DuplicateFragmentValidator extends AgBaseListener {
public class DuplicateFragmentChecker extends AgBaseListener {

protected final Map<String, FragmentDeclContext> fragments = new HashMap<>();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import silverchain.SilverchainException;
import silverchain.internal.front.parser.antlr.AgParser.TypeDeclContext;

public class DuplicateTypeDecl extends SilverchainException {
public class DuplicateType extends SilverchainException {

protected static final String FORMAT = "Duplicate type declaration (L%dC%d and L%dC%d)";

public DuplicateTypeDecl(TypeDeclContext ctx1, TypeDeclContext ctx2) {
public DuplicateType(TypeDeclContext ctx1, TypeDeclContext ctx2) {
super(
FORMAT,
ctx1.start.getLine(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import java.util.HashMap;
import java.util.Map;
import silverchain.internal.front.parser.antlr.AgBaseListener;
import silverchain.internal.front.parser.antlr.AgParser.NameContext;
import silverchain.internal.front.parser.antlr.AgParser.TypeDeclContext;

public class DuplicateTypeDeclValidator extends AgBaseListener {
public class DuplicateTypeChecker extends AgBaseListener {

protected final Map<String, TypeDeclContext> declarations = new HashMap<>();

@Override
public void enterTypeDecl(TypeDeclContext ctx) {
String id = stringify(ctx.name());
if (declarations.containsKey(id)) {
throw new DuplicateTypeDecl(declarations.get(id), ctx);
throw new DuplicateType(declarations.get(id), ctx);
} else {
declarations.put(id, ctx);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import silverchain.SilverchainException;
import silverchain.internal.front.parser.antlr.AgParser.ImportDeclContext;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import java.util.HashMap;
import java.util.Map;
import silverchain.internal.front.parser.antlr.AgBaseListener;
import silverchain.internal.front.parser.antlr.AgParser.ImportDeclContext;

public class ImportConflictValidator extends AgBaseListener {
public class ImportConflictChecker extends AgBaseListener {

protected final Map<String, ImportDeclContext> imports = new HashMap<>();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import silverchain.SilverchainException;
import silverchain.internal.front.parser.antlr.AgParser.RepeatSugarContext;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import static java.lang.Integer.parseInt;

import org.antlr.v4.runtime.Token;
import silverchain.internal.front.parser.antlr.AgBaseListener;
import silverchain.internal.front.parser.antlr.AgParser.RepeatSugarContext;

public class InvalidRangeValidator extends AgBaseListener {
public class InvalidRangeChecker extends AgBaseListener {

@Override
public void enterRepeatSugar(RepeatSugarContext ctx) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import silverchain.SilverchainException;
import silverchain.internal.front.parser.antlr.AgParser.FragmentRefContext;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import java.util.HashSet;
import java.util.Set;
import silverchain.internal.front.parser.antlr.AgBaseListener;
import silverchain.internal.front.parser.antlr.AgParser.FragmentDeclContext;
import silverchain.internal.front.parser.antlr.AgParser.FragmentRefContext;

public class UndefinedFragmentValidator extends AgBaseListener {
public class UndefinedFragmentChecker extends AgBaseListener {

protected final Set<String> fragments = new HashSet<>();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import silverchain.SilverchainException;
import silverchain.internal.front.parser.antlr.AgParser.RepeatSugarContext;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package silverchain.internal.front.validator;
package silverchain.internal.frontend.checker;

import static java.lang.Integer.parseInt;

import silverchain.internal.front.parser.antlr.AgBaseListener;
import silverchain.internal.front.parser.antlr.AgParser.RepeatSugarContext;

public class ZeroRepeatValidator extends AgBaseListener {
public class ZeroRepeatChecker extends AgBaseListener {

@Override
public void enterRepeatSugar(RepeatSugarContext ctx) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.parser;
package silverchain.internal.frontend.parser;

import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.CommonTokenStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.parser;
package silverchain.internal.frontend.parser;

import silverchain.SilverchainException;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.parser;
package silverchain.internal.frontend.parser;

import org.antlr.v4.runtime.BaseErrorListener;
import org.antlr.v4.runtime.RecognitionException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package silverchain.internal.front.rewriter;
package silverchain.internal.frontend.rewriter;

import static silverchain.internal.front.rewriter.RewriteUtils.copy;
import static silverchain.internal.front.rewriter.RewriteUtils.pushTokens;
import static silverchain.internal.front.rewriter.RewriteUtils.replaceChild;
import static silverchain.internal.frontend.rewriter.RewriteUtils.copy;
import static silverchain.internal.frontend.rewriter.RewriteUtils.pushTokens;
import static silverchain.internal.frontend.rewriter.RewriteUtils.replaceChild;

import java.util.HashMap;
import java.util.Map;
Expand All @@ -12,7 +12,7 @@
import silverchain.internal.front.parser.antlr.AgParser.FragmentDeclContext;
import silverchain.internal.front.parser.antlr.AgParser.FragmentRefContext;

public class FragmentResolver extends AgBaseListener {
public class FragmentExpander extends AgBaseListener {

protected final Map<String, ChainExprContext> fragments = new HashMap<>();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package silverchain.internal.front.rewriter;
package silverchain.internal.frontend.rewriter;

import static silverchain.internal.front.rewriter.RewriteUtils.copy;
import static silverchain.internal.front.rewriter.RewriteUtils.pushTokens;
import static silverchain.internal.front.rewriter.RewriteUtils.replaceChild;
import static silverchain.internal.frontend.rewriter.RewriteUtils.copy;
import static silverchain.internal.frontend.rewriter.RewriteUtils.pushTokens;
import static silverchain.internal.frontend.rewriter.RewriteUtils.replaceChild;

import java.util.HashMap;
import java.util.Map;
Expand All @@ -13,7 +13,7 @@
import silverchain.internal.front.parser.antlr.AgParser.TypeDeclContext;
import silverchain.internal.front.parser.antlr.AgParser.TypeRefContext;

public class ImportResolver extends AgBaseListener {
public class ImportExpander extends AgBaseListener {

protected final Map<String, NameContext> imports = new HashMap<>();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.rewriter;
package silverchain.internal.frontend.rewriter;

import java.lang.reflect.Constructor;
import org.antlr.v4.runtime.ParserRuleContext;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package silverchain.internal.front.rewriter;
package silverchain.internal.frontend.rewriter;

import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit e346310

Please sign in to comment.