Add basic parser

This commit is contained in:
Arnaud Vergnet 2021-03-02 15:50:32 +01:00
rodzic 35418a690e
commit 62894d15db
2 zmienionych plików z 17 dodań i 11 usunięć

24
main.py
Wyświetl plik

@ -1,16 +1,18 @@
# This is a sample Python script.
# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
def parse(lines):
lines = [line.strip() for line in lines]
lines = [line.split("->") for line in lines]
rules = [(line[0], line[1].strip().split(" ")) for line in lines]
print_rules(rules)
def print_hi(name):
# Use a breakpoint in the code line below to debug your script.
print(f'Hi, {name}') # Press Ctrl+8 to toggle the breakpoint.
def print_rules(rules):
for rule in rules:
print("void parse_%s(...) {" % rule[0])
for element in rule[1]:
print(" parse_%s(...);" % element)
print("}")
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print_hi('PyCharm')
# See PyCharm help at https://www.jetbrains.com/help/pycharm/
with open("sample.txt", "r") as f:
parse(f.readlines())

4
sample.txt Normal file
Wyświetl plik

@ -0,0 +1,4 @@
T -> S u S
T -> x S y
S -> a S b
S ->