Ignore:
Timestamp:
Mar 16, 2014, 3:51:19 PM (5 years ago)
Author:
ksherdy
Message:

Updated PabloJ to s2k.

Location:
proto/pabloj/trunk/src
Files:
239 added
8 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/trunk/src/application/config/Configuration.java

    r3277 r3699  
    55 *
    66 * @author Ken Herdy <ksherdy at sfu dot ca>
     7 * @author Tom Shermer <shermer at sfu dot ca>
    78 */
    89
     
    1516public class Configuration {   
    1617        // General definitions used in main application
    17         public  static final String COMPILER_NAME               = "PabloJ";     
    18         public  static final String WARNING_MESSAGE     = "GENERATED CODE. DO NOT MODIFY.";
     18        public  static final String COMPILER_NAME               = "s2k";       
     19        public  static final String WARNING_MESSAGE             = "GENERATED CODE. DO NOT MODIFY.";
    1920        public  static final int    EXIT_CODE_FOR_ERROR         = 1;
    2021
     
    2526        private static final String DEFAULT_OUTPUT_BASE_DIRECTORY    = "output/";
    2627        private static final String DEFAULT_TEMPLATE_BASE_DIRECTORY  = "input/templates/";
    27         private static final String DEFAULT_TEMPLATE_FILENAME        = "pablo_definitions.template";
    28 
     28        private static final String DEFAULT_TEMPLATE_FILENAME        = "definitions.template";
    2929       
    3030        // public static factory
     
    3333    }
    3434
    35    
    3635        private CommandLine cli;
    3736        private Target target = DEFAULT_TARGET;
     
    5352        private SourceLanguage configureSource(CommandLine cli) {
    5453                if(cli.hasOption("s")) {
    55                         return SourceLanguage.PABLO_S;
     54                        return SourceLanguage.S2K;
    5655                }               
    5756                if(cli.hasOption("b")) {
    58                         return SourceLanguage.PABLO_B;
     57                        return SourceLanguage.B2K;
    5958                }
    60                 assert false : "neither pabloS nor pabloB selected.";
     59                assert false : "Neither s2k nor b2k language option specified.";
    6160                return null;
    6261        }
  • proto/pabloj/trunk/src/application/config/ConfigurationOptions.java

    r3289 r3699  
    3535
    3636                addrequiredOptionGroup(
    37                         nonrequiredOption("s", "pablos",       HAS_ARG, "PabloS input file."),
    38                         nonrequiredOption("b", "pablob",       HAS_ARG, "PabloB input file.")
     37                        nonrequiredOption("s", "s2k",              HAS_ARG, "s2k input file."),
     38                        nonrequiredOption("b", "b2k",          HAS_ARG, "b2k input file.")
    3939                );
    4040
     
    4343                addNonrequiredOption("o", "output",        HAS_ARG, COMPILER_NAME + " output file.");   
    4444                addNonrequiredOption("O", "outputdir",     HAS_ARG, COMPILER_NAME + " output directory.");     
    45                 addNonrequiredOption("e", "error",         HAS_ARG, "Name/qualified name of error routine.");   
     45                addNonrequiredOption("e", "error",         HAS_ARG, "Name or qualified name of an error routine.");     
    4646                addNonrequiredOption("a", "align",         NO_ARG,  "Add ASSERT_BITBLOCK_ALIGN statments.");   
    4747                addNonrequiredOption("d", "dump",          NO_ARG,  "Add SIMD register dump statements.");                                     
    48                 addNonrequiredOption("x", "language",      HAS_ARG, "Target language. Targets include: 'cpplang', 'clang (not yet supported)'.");
     48                addNonrequiredOption("x", "language",      HAS_ARG, "Target language. Targets include: 'cpplang', 'clang' (not yet supported).");
    4949                addNonrequiredOption("p", "experimental",  NO_ARG,  "Experimental mode.");                      // TS: unused           
    5050
  • proto/pabloj/trunk/src/application/config/SourceLanguage.java

    r3277 r3699  
     1/**
     2 * Source language configuration.
     3 *
     4 * @author Ken Herdy <ksherdy at sfu dot ca>
     5 * @author Tom Shermer <shermer at sfu dot ca>
     6 *
     7 */
    18package application.config;
    29
    3 // TS: original had PABLOS_EXT, PABLOB_EXT defined as extensions but never used them.  Remove extensions?
    410public enum SourceLanguage {
    5         PABLO_S(".pablos", "s"),
    6         PABLO_B(".pablob", "b");
     11        S2K(".s2k", "s"),
     12        B2K(".b2k", "b");
    713       
    814        private String extension;
  • proto/pabloj/trunk/src/application/generators/ASTGenerator.java

    r3387 r3699  
    11/*
    2  * PabloS parser wrapper.
     2 * s2k parser wrapper.
    33 *
    44 * @author Ken Herdy <ksherdy at sfu dot ca>
     
    77package application.generators;
    88
    9 import pabloS.logging.ScatterLogger;
     9import s2k.logging.ScatterLogger;
    1010
    1111public class ASTGenerator {
    1212       
    13         public static pabloS.ast.ASTNode buildPabloSAST(String pabloSFile) throws ASTGeneratorException {                       
     13        public static s2k.ast.ASTNode buildS2KAST(String s2kFile) throws ASTGeneratorException {                       
    1414
    15                 pabloS.lexicalAnalyzer.LexicalController lexController = pabloS.lexicalAnalyzer.LexicalController.make(pabloSFile);
    16                 pabloS.ast.ASTNode ASTTree = pabloS.parser.Parser.parse(lexController);
     15                s2k.lexicalAnalyzer.LexicalController lexController = s2k.lexicalAnalyzer.LexicalController.make(s2kFile);
     16                s2k.ast.ASTNode ASTTree = s2k.parser.Parser.parse(lexController);
    1717       
    1818                if(thereAreErrors()) {
     
    2323        }               
    2424
    25         static public pabloB.ast.ASTNode buildPabloBAST(String pabloBFile) throws ASTGeneratorException {                       
     25        static public b2k.ast.ASTNode buildB2KAST(String b2kFile) throws ASTGeneratorException {                       
    2626
    27                 pabloB.lexicalAnalyzer.LexicalController lexController = pabloB.lexicalAnalyzer.LexicalController.make(pabloBFile);
    28                 pabloB.ast.ASTNode ASTTree = pabloB.parser.Parser.parse(lexController);
     27                b2k.lexicalAnalyzer.LexicalController lexController = b2k.lexicalAnalyzer.LexicalController.make(b2kFile);
     28                b2k.ast.ASTNode ASTTree = b2k.parser.Parser.parse(lexController);
    2929       
    3030                if(thereAreErrors()) {
  • proto/pabloj/trunk/src/application/generators/ASTGeneratorException.java

    r2998 r3699  
    22
    33public class ASTGeneratorException extends Exception {
    4 
    5         /**
    6          *      Default
    7          */
     4        /**     Default  */
    85        private static final long serialVersionUID = 1L;
    9 
    106}
  • proto/pabloj/trunk/src/application/generators/AbstractTemplateContentsGenerator.java

    r3010 r3699  
    77package application.generators;
    88
    9 import toolchain.pabloB.codeGenerator.visitors.AbstractUnparser;
     9import toolchain.b2k.codeGenerator.visitors.AbstractUnparser;
    1010
    1111abstract public class AbstractTemplateContentsGenerator {
    1212   
    13         protected pabloB.ast.ProgramNode programNode;
     13        protected b2k.ast.ProgramNode programNode;
    1414        protected AbstractUnparser unparser;
    1515    protected String outputDirectory;
     
    1717        protected String targetFilePath;
    1818               
    19         public AbstractTemplateContentsGenerator(pabloB.ast.ProgramNode programNode,
     19        public AbstractTemplateContentsGenerator(b2k.ast.ProgramNode programNode,
    2020                                                                                AbstractUnparser unparser,
    2121                                                                                String outputDirectory,
  • proto/pabloj/trunk/src/application/generators/ApplicationGenerator.java

    r3401 r3699  
    11/*
    2  * High-level module that captures the logic to generates application code based on the application configuration.
     2 * High-level module that captures the logic to generates application
     3 * code based on the application configuration.
    34 *
    4  * <ksherdy at sfu dot ca>
     5 * @author Ken Herdy ksherdy at sfu dot ca
     6 * @author Tom Shermer shermer at sfu dot ca
    57 */
    68
    79package application.generators;
    810
    9 import toolchain.pabloB.codeGenerator.idisa.IDISABuiltin2C;
    10 import toolchain.pabloB.codeGenerator.idisa.IDISABuiltin2CPP;
    11 import toolchain.pabloB.codeGenerator.visitors.AbstractUnparser;
    12 import toolchain.pabloB.codeGenerator.visitors.Unparser;
    13 import toolchain.pabloB.transformer.visitors.pabloB2PabloB.PabloB2PabloBController;
     11import toolchain.b2k.codeGenerator.idisa.IDISABuiltin2C;
     12import toolchain.b2k.codeGenerator.idisa.IDISABuiltin2CPP;
     13import toolchain.b2k.codeGenerator.visitors.AbstractUnparser;
     14import toolchain.b2k.codeGenerator.visitors.Unparser;
     15import toolchain.b2k.transformer.visitors.B2K2B2K.B2K2B2KController;
    1416
    15 import toolchain.pabloS.transformer.visitors.pabloS2PabloB.PabloS2PabloBTransformer;
    16 import toolchain.pabloS.transformer.visitors.pabloS2pabloS.PabloS2SPabloController;
     17import toolchain.s2k.transformer.visitors.S2K2B2K.S2K2B2KTransformer;
     18import toolchain.s2k.transformer.visitors.S2K2S2K.S2K2S2kController;
    1719
    1820import application.config.Configuration;
     
    2628       
    2729        public ApplicationGenerator(Configuration applicationConfiguration) {
    28                 pabloS.tokens.Tokens.setPrintLevel(pabloS.tokens.Tokens.Level.FULL);           
     30                s2k.tokens.Tokens.setPrintLevel(s2k.tokens.Tokens.Level.FULL);         
    2931                this.applicationConfiguration = applicationConfiguration;
    3032        }
     
    3840               
    3941                // Transformation configurations to support multiple backends
    40                 toolchain.pabloS.lang.PabloSBuiltinEncoder pabloSbuiltinsEncoder  = null;
    41                 toolchain.pabloB.lang.BuiltinEncoder pabloBBuiltinsEncoder  = null;
     42                toolchain.s2k.lang.BuiltinEncoder s2kBuiltinsEncoder  = null;
     43                toolchain.b2k.lang.BuiltinEncoder b2kBuiltinsEncoder  = null;
    4244                AbstractUnparser unparser                                                                       = null;
    4345               
    44                 toolchain.pabloS.lang.carrySet.CarrySetEncoder carrySetEncoder = null;
     46                toolchain.s2k.lang.carrySet.CarrySetEncoder carrySetEncoder = null;
    4547                               
    4648                if(applicationConfiguration.getTarget() == Target.C_LANG) {
    47             pabloSbuiltinsEncoder       = new toolchain.pabloS.lang.PabloSBuiltin2C();
    48             pabloBBuiltinsEncoder       = new toolchain.pabloB.lang.PabloBBuiltins2C();
    49             carrySetEncoder             = new toolchain.pabloS.lang.carrySet.CarrySetBuiltin2C();
     49            s2kBuiltinsEncoder  = new toolchain.s2k.lang.S2KBuiltin2C();
     50            b2kBuiltinsEncoder  = new toolchain.b2k.lang.B2KBuiltins2C();
     51            carrySetEncoder             = new toolchain.s2k.lang.carrySet.CarrySetBuiltin2C();
    5052                        unparser                        = new Unparser(new IDISABuiltin2C());                   
    5153                } else if(applicationConfiguration.getTarget() == Target.CPP_LANG) {
    52                         pabloSbuiltinsEncoder   = new toolchain.pabloS.lang.PabloSBuiltin2CPP();
    53                         pabloBBuiltinsEncoder   = new toolchain.pabloB.lang.PabloBBuiltins2CPP();
    54                         carrySetEncoder                 = new toolchain.pabloS.lang.carrySet.CarrySetBuiltin2CPP();
     54                        s2kBuiltinsEncoder      = new toolchain.s2k.lang.S2KBuiltin2CPP();
     55                        b2kBuiltinsEncoder      = new toolchain.b2k.lang.B2KBuiltins2CPP();
     56                        carrySetEncoder                 = new toolchain.s2k.lang.carrySet.CarrySetBuiltin2CPP();
    5557                        unparser                                = new Unparser(new IDISABuiltin2CPP());
    5658                } /*else if(applicationConfiguration.targetLang.contentEquals(Configuration.LLVM)) {  // default C++
    57                         builtins2Lang = new PabloSBuiltins2CPP();
     59                        builtins2Lang = new S2KBuiltins2CPP();
    5860                        carrySet2Lang = new CarrySetBuiltins2CPP();
    5961                        unparser          = new Unparser(new IDISABuiltins2LLVM());
    6062                } */
    6163
    62                 pabloB.ast.ASTNode pabloBAST = null;
     64                b2k.ast.ASTNode b2kAST = null;
    6365               
    64                 if(applicationConfiguration.getSource() == SourceLanguage.PABLO_S) {
     66                if(applicationConfiguration.getSource() == SourceLanguage.S2K) {
    6567                    //////////////////////////////////////////////////////////////
    66                     // Parse PabloS input
    67                     pabloS.ast.ASTNode pabloSAST = ASTGenerator.buildPabloSAST(applicationConfiguration.sourceFile());
     68                    // Parse s2k input
     69                    s2k.ast.ASTNode s2kAST = ASTGenerator.buildS2KAST(applicationConfiguration.sourceFile());
    6870                                               
    6971            //////////////////////////////////////////////////////////////
    70             // PabloS to PabloS transformations
    71                         pabloS.ast.ASTNode decoratedTree             = PabloS2SPabloController.accept(pabloSAST);
    72                         pabloS.ast.ASTNode finalBlockDecoratedTree   = PabloS2SPabloController.accept(pabloSAST);
     72            // s2k to s2k transformations
     73                        s2k.ast.ASTNode decoratedTree             = S2K2S2kController.accept(s2kAST);
     74                        s2k.ast.ASTNode finalBlockDecoratedTree   = S2K2S2kController.accept(s2kAST);
    7375                                               
    7476            //////////////////////////////////////////////////////////////
    75             // PabloS to PabloB transformation
    76                         pabloBAST = PabloS2PabloBTransformer.apply(pabloSbuiltinsEncoder, carrySetEncoder, decoratedTree, finalBlockDecoratedTree);
     77            // s2k to b2k transformations
     78                        b2kAST = S2K2B2KTransformer.apply(s2kBuiltinsEncoder, carrySetEncoder, decoratedTree, finalBlockDecoratedTree);
    7779                       
    78                 } else if (applicationConfiguration.getSource() == SourceLanguage.PABLO_B) {
     80                } else if (applicationConfiguration.getSource() == SourceLanguage.B2K) {
    7981            //////////////////////////////////////////////////////////////
    80             // Parse PabloB input
    81                     pabloBAST = ASTGenerator.buildPabloBAST(applicationConfiguration.sourceFile());
     82            // Parse b2k input
     83                    b2kAST = ASTGenerator.buildB2KAST(applicationConfiguration.sourceFile());
    8284                }
    8385
    8486        //////////////////////////////////////////////////////////////
    85         // PabloB to PabloB transformations
    86                 PabloB2PabloBController.setBuiltins2Lang(pabloBBuiltinsEncoder);
     87        // b2k to b2k transformations
     88                B2K2B2KController.setBuiltins2Lang(b2kBuiltinsEncoder);
    8789       
    8890        if(applicationConfiguration.addingAlignmentAssertions()) {
    89             PabloB2PabloBController.setAddAssertBitBlockAlignStmts(true);
     91            B2K2B2KController.setAddAssertBitBlockAlignStmts(true);
    9092        }
    9193       
    9294        if(applicationConfiguration.addingDumpStatements()) {
    93             PabloB2PabloBController.setAddDumpStmts(true);
     95            B2K2B2KController.setAddDumpStmts(true);
    9496        } 
    9597
    96         pabloBAST = PabloB2PabloBController.accept(pabloBAST);
     98        b2kAST = B2K2B2KController.accept(b2kAST);
    9799       
    98100       
     
    104106               
    105107                HeaderTemplateContentsGenerator templateContentsGenerator
    106                                                                         = new HeaderTemplateContentsGenerator((pabloB.ast.ProgramNode) pabloBAST,
     108                                                                        = new HeaderTemplateContentsGenerator((b2k.ast.ProgramNode) b2kAST,
    107109                                                                                                                                                        unparser,
    108110                                                                                                                                                        outputDirectory,
  • proto/pabloj/trunk/src/application/generators/HeaderTemplateContentsGenerator.java

    r3192 r3699  
    11/*
    2  * Generates a target language output header file from a PabloB ProgramNode.
     2 * Generates a target language output header file.
     3 * Expects b2k ProgramNode as input.
    34 *
    45 * @author <ksherdy at sfu dot ca>
     
    89package application.generators;
    910
    10 import pabloB.ast.*;
    11 import toolchain.pabloB.ast.Accessors;
    12 import toolchain.pabloB.codeGenerator.visitors.AbstractUnparser;
     11import b2k.ast.*;
     12import toolchain.b2k.ast.Accessors;
     13import toolchain.b2k.codeGenerator.visitors.AbstractUnparser;
    1314
    1415import application.config.Configuration;
  • proto/pabloj/trunk/src/application/logging/Logger.java

    r2998 r3699  
     1/**
     2 * This class is a Facade for java.util.logging.
     3 * It also retains the number of messages that have been logged.
     4 * Optionally, one may configure this logger to throw an exception
     5 * when a certain message count is reached.
     6 * <p>
     7 * Retains hard references to all loggers created.
     8 *
     9 * @author Tom Shermer <shermer at sfu dot ca>
     10 *
     11 */
    112package application.logging;
    213
     
    415import java.util.Map;
    516import java.util.logging.Level;
    6 
    7 /** This class is a Facade for java.util.logging.
    8  * It also retains the number of messages that have been logged.
    9  * Optionally, one may configure this logger to throw an exception
    10  * when a certain message count is reached.
    11  * <p>
    12  * Retains hard references to all loggers created.
    13  */
    1417
    1518public class Logger {
  • proto/pabloj/trunk/src/application/templating/FileTemplate.java

    r2998 r3699  
     1/*
     2 * File Templating.
     3 *
     4 * @author Ken Herdy <ksherdy at sfu dot ca>
     5 * @author Tom Shermer <shermer at sfu dot ca>
     6 */
    17package application.templating;
    28
    3 import pabloS.inputHandler.LineBasedReader;
     9import s2k.inputHandler.LineBasedReader;
    410import java.io.PrintStream;
    511
     
    6470       
    6571        // The Template implementation just delegates to the MemoryTemplate
    66        
    6772        @Override
    6873        public void set(String name, String value) {
  • proto/pabloj/trunk/src/application/templating/MemoryTemplate.java

    r2998 r3699  
     1/*
     2 * Memory Templating.
     3 *
     4 * @author Ken Herdy <ksherdy at sfu dot ca
     5 * @author Tom Shermer <shermer at sfu dot ca
     6 */
    17package application.templating;
    28
  • proto/pabloj/trunk/src/application/templating/Template.java

    r2998 r3699  
     1/*
     2 * Templating Interface.
     3 *
     4 * @author Ken Herdy <ksherdy at sfu dot ca>
     5 * @author Tom Shermer <shermer at sfu dot ca>
     6 */
    17package application.templating;
    28
  • proto/pabloj/trunk/src/test/helpers/ASTComparator.java

    r3173 r3699  
    44
    55import java.util.List;
    6 import pabloS.ast.ASTNode;
     6import s2k.ast.ASTNode;
    77
    88/**
  • proto/pabloj/trunk/src/test/helpers/AssertNodePairComparator.java

    r3173 r3699  
    99package test.helpers;
    1010
    11 import pabloS.ast.*;
     11import s2k.ast.*;
    1212
    1313public class AssertNodePairComparator {
Note: See TracChangeset for help on using the changeset viewer.