Changeset 2672


Ignore:
Timestamp:
Nov 21, 2012, 7:01:30 PM (6 years ago)
Author:
ksherdy
Message:

Added parser/semantic analyzer packages.

Location:
proto/pablo/src/compiler
Files:
6 added
14 copied

Legend:

Unmodified
Added
Removed
  • proto/pablo/src/compiler/parser/ASTGenerator.java

    r2652 r2672  
    44//
    55
    6 package  compiler;
     6package  compiler.parser;
    77
    8 public class PabloApplication {
     8import parser.*;
     9import ast.ASTNode;
     10
     11import lexicalAnalyzer.LexicalController;
     12import logging.ScatterLogger;
     13import compiler.parser.ASTGenerator;
     14
     15public class ASTGenerator {
    916       
    10         public PabloApplication() {
    11                 super();
     17        static public ASTNode generateAST(String inputFile) throws ASTGenerationFailedException {                       
     18
     19                LexicalController lexController = LexicalController.make(inputFile);
     20                ASTNode ASTTree = Parser.parse(lexController);
     21       
     22                if(thereAreErrors()) {
     23                        throw new ASTGenerationFailedException();
     24                }
     25               
     26                return ASTTree;
     27        }               
     28       
     29        static private boolean thereAreErrors() {
     30                return ScatterLogger.hasErrors();
     31        }       
     32                       
     33        static private void informUserNoCodeGenerated() {
     34                System.err.println("AST generation failed. Source program errors. No code generated.");
    1235        }
    13 
     36       
     37        static public void printCompletionMessage() {
     38                System.out.println("Code generation complete.");
     39        }
     40       
    1441}
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/ASTAssertCompareVisitor.java

    r2607 r2672  
    11
    2 package compiler.test;
     2package compiler.semanticAnalyzer.visitors;
    33
    44import java.util.List;
     
    66import ast.ASTNode;
    77
     8
    89/**
    910 * Through the static method <code>compare</code>,
    10  * this class will assert
    11  * that AST subtrees input are equal.
     11 * this class asserts AST subtrees are equal.
    1212 */
    13 public class ASTComparator {
     13public class ASTAssertCompareVisitor {
    1414
    1515        public enum Level {
     
    3232       
    3333        static public void setComparisonLevel(Level level) {
    34                 ASTComparator.comparisonLevel = level;
     34                ASTAssertCompareVisitor.comparisonLevel = level;
    3535        }
    3636       
    3737        static public Level getComparisonLevel() {
    38                 return ASTComparator.comparisonLevel;
     38                return ASTAssertCompareVisitor.comparisonLevel;
    3939        }
    4040       
    4141        static public void compare(ASTNode ASTTree1, ASTNode ASTTree2) {
    42                 ASTComparator comparator = new ASTComparator();
     42                ASTAssertCompareVisitor comparator = new ASTAssertCompareVisitor();
    4343                boolean result = comparator.compareSubtree(ASTTree1, ASTTree2);
    4444               
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/AdvanceCombinerXFormer.java

    r2662 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
    3 
     3import ast.*;
    44import compiler.ast.Accessors;
    55import compiler.ast.Generators;
     
    77
    88import tokens.*;
    9 import ast.*;
    109
    1110public class AdvanceCombinerXFormer {
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/AdvanceNCounterVisitor.java

    r2658 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
     3import ast.*;
    34import compiler.lang.pablo.BuiltinsUtil;
    4 import ast.*;
    55
    66public class AdvanceNCounterVisitor {
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/AssertBitBlockAlignStmtsXFormer.java

    r2660 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
    33import ast.*;
     
    66import compiler.lang.pablo.Builtins;
    77import compiler.lang.pablo.Builtins2Lang;
    8 import compiler.lang.carry.CarrySet2Lang;
     8import compiler.lang.carryset.CarrySet2Lang;
    99
    1010public class AssertBitBlockAlignStmtsXFormer {
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/AssertZeroXFormer.java

    r2658 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
    33import ast.*;
     
    77import compiler.lang.pablo.Builtins2Lang;
    88import compiler.lang.pablo.BuiltinsUtil;
    9 import compiler.lang.carry.CarrySet2Lang;
    10 import compiler.lang.idisa.BITBLOCK;
     9import compiler.lang.idisa.BitBlock;
    1110
    1211public class AssertZeroXFormer {
     
    5756                               
    5857                                ASTNode anyFuncCallNode =
    59                                                 Generators.makeFuncCallNode(BITBLOCK.ANY.IDISAName(),
     58                                                Generators.makeFuncCallNode(BitBlock.ANY.IDISAName(),
    6059                                                                                                                                node.getToken(),                               
    6160                                                                                                                                new ASTNode [] {errorStream});
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/AugAssignXFormer.java

    r2660 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
    33import java.util.HashMap;
    44import java.util.Map;
    55
     6import ast.*;
    67import compiler.ast.Accessors;
    78import compiler.ast.Generators;
    89
     10
    911import lexicalAnalyzer.Lextant;
    10 import ast.*;
    1112import tokens.*;
    1213
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/Bitwise2IDISAXFormer.java

    r2662 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
     3import ast.*;
    34import lexicalAnalyzer.Lextant;
    45import tokens.Token;
    5 import ast.*;
    66import compiler.ast.Accessors;
    77import compiler.ast.Generators;
     
    132132                public void visitLeave(IfStmtNode node) {
    133133                        ASTNode ifTest = Accessors.ifTest(node);                       
    134                         String FuncName = BITBLOCK.ANY.IDISAName();
     134                        String FuncName = BitBlock.ANY.IDISAName();
    135135                        FuncCallNode FuncCallNode = Generators.makeFuncCallNode(FuncName, node.getToken(), new ASTNode [] {ifTest});
    136136                        node.replaceChild(ifTest, FuncCallNode);
     
    145145                                                                                                                               
    146146                        FuncCallNode FuncCallNode = Generators.makeFuncCallNode(
    147                                         BITBLOCK.ANY.IDISAName(),
     147                                        BitBlock.ANY.IDISAName(),
    148148                                        node.getToken(),
    149149                                        new ASTNode [] {whileTest});                           
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/CarryCounterVisitor.java

    r2658 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
    33import ast.*;
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/CarryIntroXFormer.java

    r2658 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
     3import ast.*;
    34import tokens.LextantToken;
    45import lexicalAnalyzer.Lextant;
    56import compiler.ast.Accessors;
    67import compiler.ast.Generators;
    7 import compiler.lang.carry.CarrySet;
    8 import compiler.lang.carry.CarrySet2Lang;
     8import compiler.lang.carryset.CarrySet;
     9import compiler.lang.carryset.CarrySet2Lang;
    910import compiler.lang.pablo.BuiltinsUtil;
    10 
    11 import ast.*;
    1211
    1312public class CarryIntroXFormer {
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/DumpAssignStmtsXFormer.java

    r2660 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
    33import ast.*;
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/Pablo2CarryXFormer.java

    r2658 r2672  
    1 package compiler.visitors;
     1package compiler.semanticAnalyzer.visitors;
    22
    33import java.util.ArrayList;
    44import java.util.List;
    55
     6import ast.*;
    67import compiler.ast.Accessors;
    78import compiler.ast.Generators;
    8 import compiler.lang.carry.CarrySet;
    9 import compiler.lang.carry.CarrySet2Lang;
     9import compiler.lang.carryset.CarrySet;
     10import compiler.lang.carryset.CarrySet2Lang;
    1011import compiler.lang.idisa.SIMD;
    1112import compiler.lang.pablo.*;
    1213
    1314
    14 import ast.*;
    1515
    1616public class Pablo2CarryXFormer {
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/StreamFuncVisitor.java

    r2658 r2672  
    1 package compiler.visitors;
    2 
    3 import lexicalAnalyzer.LexicalType;
    4 import tokens.IdentifierToken;
    5 import ast.*;
     1package compiler.semanticAnalyzer.visitors;
    62
    73import java.util.*;
    84
     5import ast.*;
     6import lexicalAnalyzer.LexicalType;
     7import tokens.IdentifierToken;
    98import compiler.ast.Accessors;
     9
    1010
    1111//class StreamFuncVisitor(ast.NodeVisitor):
  • proto/pablo/src/compiler/semanticAnalyzer/visitors/helpers/AssertCompare.java

    r2660 r2672  
    1 package compiler.test;
     1package compiler.semanticAnalyzer.visitors.helpers;
    22
     3import compiler.semanticAnalyzer.visitors.ASTAssertCompareVisitor;
    34
    45import ast.*;
    56
    6 public class ASTTest {
     7public class AssertCompare {
    78       
    89    private ASTNode ASTTree;
    910   
    10     public ASTTest(ASTNode ASTTree) {
     11    public AssertCompare(ASTNode ASTTree) {
    1112        this.ASTTree = ASTTree;
    1213    }
     
    6263                        } else {
    6364                                this.ASTTree2 = node;
    64                                 ASTComparator.compare(this.ASTTree1, this.ASTTree2);
     65                                ASTAssertCompareVisitor.compare(this.ASTTree1, this.ASTTree2);
    6566                                init();
    6667                        }
     
    7980                        } else {
    8081                                this.ASTTree2 = node;
    81                                 ASTComparator.compare(this.ASTTree1, this.ASTTree2);
     82                                ASTAssertCompareVisitor.compare(this.ASTTree1, this.ASTTree2);
    8283                                super.init();
    8384                        }
Note: See TracChangeset for help on using the changeset viewer.