Exemplo n.º 1
0
    def __init__(self, logger):
        self.logger = logger
        self.parser = CommandParser.CommandParser()

        self.para_lexer = para_lexer.paraScanner(logger=logger, debug=0)
        self.para_parser = paraParser(self.para_lexer, logger=logger,
                                      debug=0)

        self.para = Bunch.threadSafeBunch()
        self.userRegMap = Bunch.threadSafeBunch()
        self.systemRegMap = Bunch.threadSafeBunch()
        self.commandRegMap = Bunch.threadSafeBunch()
Exemplo n.º 2
0
def main(options, args):

    # TODO: configure the logger
    logger = logging.getLogger('para.parser')

    lexer = para_lexer.paraScanner(logger=logger, debug=0)

    parser = paraParser(lexer, logger=logger, debug=0,
                        tabmodule=yacc_tab_module)

    if len(args) > 0:
        for filename in args:
            try:
                res = parser.parse_file(filename)

                if (res.errors == 0) and options.verbose:
                    print(res.paramList)
                    print(res.paramDict)

                print("%s: %d errors" % (filename, res.errors))

            except paraParseError as e:
                # Print error message and continue to next file
                print(str(e))

    else:
        buf = sys.stdin.read()
        try:
            res = parser.parse_buf(buf)

            if (res.errors == 0) and options.verbose:
                print(res.paramList)
                print(res.paramDict)

                print("%d errors" % (res.errors))

        except paraParseError as e:
            # Print error message
            print(str(e))
Exemplo n.º 3
0
def main(options, args):

    import os

    # TODO: configure the logger
    logger = logging.getLogger('para.ParameterHandler')
    logger.addHandler(logging.StreamHandler())
    logger.setLevel(logging.WARN)

    lexer = para_lexer.paraScanner(logger=logger, debug=0)
    parser = paraParser(lexer, logger=logger, debug=0)

    if len(args) > 0:
        for filename in args:
            in_f = open(filename, 'r')
            buf = in_f.read()
            in_f.close()

            print(filename, ":")
            if options.scan:
                res = lexer.tokenize(buf)
                print(res)
            else:
                res = parser.parse(buf)
                print(res)

    elif options.tsctest:
        #? rootLogger = logging.getLogger()
        pattern = re.compile(r'^(\w+)\.para$')
        currentDir = os.path.split(__file__)[0]
        TSCdir = os.path.join(currentDir, "../SkPara/cmd/TSC")
        have = os.listdir(TSCdir)

        for fname in have:
            if not pattern.match(fname):
                continue

            objectName = pattern.match(fname).group(1)
            # parser = yacc.yacc(debug=0)
            buf = ''
            print("#", "-" * 30, fname)
            fh = open(os.path.join(TSCdir, fname), "r")
            fw = open(os.path.join(currentDir, "%s.cmd" % objectName), "w")
            for cline in fh:
                buf = buf + cline
            buf = buf + '\n'
            l2 = parser.mk_paramObj(fname, buf)
            print(l2)
            v = ParameterHandler(l2)

            listOfSets = []
            listOfParamNames = []
            for aKey in l2:
                listOfParamNames.append(aKey)
                listOfSets.append(l2[aKey].getAllParamValueList())

            combinationList = combination(listOfSets)

            for aList in combinationList:
                parameterMap = {}
                for i in range(len(listOfParamNames)):
                    parameterMap[listOfParamNames[i]] = aList[i]
                try:
                    parameterMap = v.populate(parameterMap, {}, {}, {}, {}, {})
                    v.validate(parameterMap)
                    printList = 'EXEC TSC %s' % objectName
                    for i in list(parameterMap.keys()):
                        printList = printList + (" %s=%s " %
                                                 (i, parameterMap[i]))
                    fw.write(printList + "\n")
                except (ParameterValidationException,
                        InconsistentParameterDefinitionException) as e:
                    pass
            fw.close()