def parseQuery(s, username):
	# return "hey it works"
	parser = yacc.yacc(debug=0)
	prep = preProcessor()
	s = prep.mapConditions(s)
	result = parser.parse(s)
	gen = queryGenerator()
	query = gen.start(result, username)
	return query
Exemplo n.º 2
0
from queryGenerator import queryGenerator
from formGenerator import formGenerator

# test if the user give the path to a prisma model
if len(sys.argv) != 2:
    print("please give the path to your prisma models (ex: ../server/models/")
    sys.exit()

# var
objects = []
enums = []

# get path from parameters
path = sys.argv[1]

for path in Path(path).iterdir():
    if path.is_file():
        # open file
        model = open(path, "r")
        # Generate datastructure
        objectsModel, enumsModel = generateDatastructre(model)
        objects += objectsModel
        enums += enumsModel

printResult(objects, enums)

for obj in objects:
    queryGenerator(obj, objects, enums)
    viewGenerator(obj, enums)
    formGenerator(obj, objects, enums)
def p_specificCond(p):
	'''specificCond : placeCond 
					| followCond'''

	p[0] = ('specificCond' , p[1])

def p_placeCond(p):
	'''placeCond : LIVING_IN PLACE'''
	p[0] = ('placeCond' , p[1] , p[2])

def p_followCond(p):
	'''followCond : HAVING_FOLLOWER_GREATER_THAN NUMBER 
				  | HAVING_FOLLOWER_LESS_THAN NUMBER'''

	p[0] = ('followCond' , p[1] , p[2])

# Error rule for syntax errors
def p_error(p):
	print("Syntax error at '%s'" % repr(p)) #p.value)

# Build the parser
parser = yacc.yacc()

s = raw_input('Enter string:')
result = parser.parse(s)
print result
gen = queryGenerator()
query = gen.start(result)
print query