LARK: Разбор: Реализация файла импорта? - PullRequest
1 голос
/ 10 ноября 2019

Как бы вы внедрили грамматику, которая может импортировать файл и все еще анализировать его, используя LARK?

fe:

@import file.txt
.....

Ответы [ 2 ]

1 голос
/ 10 ноября 2019

Я нашел GitHub, который кажется актуальным, это то, что вы ищете? https://github.com/lark-parser/lark

from lark import Lark
with open('file_to_read.txt', 'r') as file:
    data = file.read().replace('\n', '') #assumes you want to remove \n
l = Lark('''start: WORD "," WORD "!"
            %import common.WORD   // imports from terminal library
            %ignore " "           // Disregard spaces in text
         ''')

print( l.parse("Hello, World!") )
print( l.parse(data) )

Если вы хотите открыть файл и использовать его как жаворонок

from lark import Lark
with open('file_to_read.txt', 'r') as file:
    data = file.read().replace('\n', '') #assumes you want to remove \n
l = Lark(data)

print( l.parse("Hello, World!") )
print( l.parse("your string to parse") )
0 голосов
/ 10 ноября 2019

Я только что понял, что могу использовать препроцессор C / C ++ для генерации файла, который затем могу анализировать:)

Он не интегрирован, но может заставить его работать

cpp -P included.inc > output.file
...