コード例 #1
0
ファイル: grapher.py プロジェクト: MasonM/grammargrapher
def get_lexer(filename):
    prefix = os.path.basename(filename)[:-4]
    temp = NamedTemporaryFile(prefix = prefix, suffix = "lextab.py")
    lex = {}
    pylly.parsespec(filename, temp.name)
    exec temp.read() in lex
    temp.close()
    return lexer.lexer(lex['lexspec'])
コード例 #2
0
ファイル: helpers.py プロジェクト: hosford42/pyggy
def generate(fname, targ, debug=0, forcegen=0) :
	"""
	Generate tables from a grammar or lexer spec file.
	"""
	import os.path
	if forcegen or not os.path.exists(targ) or _mtime(targ) < _mtime(fname) :
		print "generating %s from %s" % (targ, fname)
		if fname[-4:] == ".pyl" :
			from pyggy import pylly
			pylly.parsespec(fname, targ, debug=debug)
		elif fname[-4:] == ".pyg" :
			from pyggy import pyggyc
			pyggyc.parsespec(fname, targ, debug=debug)
		else :
			raise ApiError("bad spec filename %s" % fname)