Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / src / tests / CodeGeneratorTest.java
package tests;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;

import algorithms.*;
import code.ast.FieldDeclaration;
import code.ast.MethodDeclaration;
import code.ast.TypeDeclaration;
import models.dataFlowModel.*;
import parser.*;

public class CodeGeneratorTest {
	public static void main(String[] args) {
		File file = new File("models/POS.model");
		try {
			Parser parser = new Parser(new BufferedReader(new FileReader(file)));
			DataFlowModel model;
			try {
				model = parser.doParse();
				ResourceDependencyGraph graph = DataStorageNecessity.run(model);
				EdgeTransitionSelectable.run(graph);
				DataStorageDecision.run(graph);
				ArrayList<TypeDeclaration> codetree = CodeGenerator.doGenerate(graph, model);
				for(TypeDeclaration str:codetree) {
					System.out.println(str.getTypeName());
					for(FieldDeclaration field:str.getFields()) {
						System.out.println("-" + field.getType().getTypeName() + " " + field.getName());
					}
					for(MethodDeclaration method:str.getMethods()) {
						System.out.println("-" + method.getReturnType().getTypeName() + " " + method.getName());
					}
				}
				for(String str:CodeGenerator.getCodes(codetree)) {
					System.out.println(str);
				}
			} catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutKeyword
					| ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression
					| WrongRHSExpression | ExpectedRightBracket e) {
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
}