Beispiel #1
0
def load_grammar(gt="Grammar.txt", gp=None,
                 save=True, force=False, logger=None):
    """Load the grammar (maybe from a pickle)."""
    if logger is None:
        logger = logging.getLogger()
    if gp is None:
        head, tail = os.path.splitext(gt)
        if tail == ".txt":
            tail = ""
        # embed Sphinx major version for the case we ever change the grammar...
        gp = head + tail + "-sphinx" + \
             ".".join(map(str, sphinx.version_info[:2])) + ".pickle"
    if force or not _newer(gp, gt):
        logger.info("Generating grammar tables from %s", gt)
        g = pgen.generate_grammar(gt)
        if save:
            logger.info("Writing grammar tables to %s", gp)
            try:
                g.dump(gp)
            except IOError as e:
                logger.info("Writing failed:"+str(e))
    else:
        g = grammar.Grammar()
        g.load(gp)
    return g
Beispiel #2
0
def load_grammar(gt="Grammar.txt", gp=None,
                 save=True, force=False, logger=None):
    """Load the grammar (maybe from a pickle)."""
    if logger is None:
        logger = logging.getLogger()
    if gp is None:
        head, tail = os.path.splitext(gt)
        if tail == ".txt":
            tail = ""
        # embed Sphinx major version for the case we ever change the grammar...
        gp = head + tail + "-sphinx" + \
             ".".join(map(str, sphinx.version_info[:2])) + ".pickle"
    if force or not _newer(gp, gt):
        logger.info("Generating grammar tables from %s", gt)
        g = pgen.generate_grammar(gt)
        if save:
            logger.info("Writing grammar tables to %s", gp)
            try:
                g.dump(gp)
            except IOError as e:
                logger.info("Writing failed:"+str(e))
    else:
        g = grammar.Grammar()
        g.load(gp)
    return g
Beispiel #3
0
def load_grammar(gt="Grammar.txt", logger=None):
    """Load the grammar (maybe from a pickle)."""
    if logger is None:
        logger = logging.getLogger()
    gp = get_compiled_path(gt)
    if not os.path.exists(gp):
        logger.info("Generating grammar tables from %s", gt)
        g = pgen.generate_grammar(gt)
    else:
        g = grammar.Grammar()
        g.load(gp)
    return g
Beispiel #4
0
def compile_grammar(gt='Grammar.txt', logger=None):
    """Compile the grammer."""
    if logger is None:
        logger = logging.getLogger()

    logger.info("Generating grammar tables from %s", gt)
    g = pgen.generate_grammar(gt)
    gp = get_compiled_path(gt)
    logger.info("Writing grammar tables to %s", gp)
    try:
        g.dump(gp)
    except IOError as e:
        logger.info("Writing failed:"+str(e))
Beispiel #5
0
def load_grammar(gt="Grammar.txt", gp=None,
                 save=True, force=False, logger=None):
    """Load the grammar (maybe from a pickle)."""
    if logger is None:
        logger = logging.getLogger()
    if gp is None:
        head, tail = os.path.splitext(gt)
        if tail == ".txt":
            tail = ""
        gp = head + tail + ".".join(map(str, sys.version_info[:2])) + ".pickle"
    if force or not _newer(gp, gt):
        logger.info("Generating grammar tables from %s", gt)
        g = pgen.generate_grammar(gt)
        if save:
            logger.info("Writing grammar tables to %s", gp)
            try:
                g.dump(gp)
            except IOError, e:
                logger.info("Writing failed:"+str(e))