abstract-syntax-tree

Я пытаюсь построить АСТ, используя свободную монаду, основанную на некоторой полезной литературе, которую я прочитал в интернете. У меня есть несколько вопросов о работе с этими видами AST на практике, которые я свел к следующему примеру. Предположим, что мой язык допускает следующие команды: {-# LANGUAGE...

Я пробираюсь через модуль Python ast и не могу понять определение слайсов: slice = Ellipsis | Slice(expr? lower, expr? upper, expr? step) | ExtSlice(slice* dims) | Index(expr value) Пока я знаю, что Ellipsis является [...], Slice является ли обычная [start:end:step] но...

У меня есть выражение, описанное в переменных формах, как это 's1*3 - (s2-s1)*1' Я дал значения s1 и s2, которые могут изменяться в зависимости от необходимости Я могу использовать модуль python ast для вычисления этого выражения путем замены соответствующих значений s1 и s2 (s1 = 20,s2=30) import as...

Все еще учимся Правильно Использовать ANTLR... Вот в чем моя проблема. Предположим, что у вас есть (подмножество) грамматики UML и лексера/синтаксического анализатора ANTLR со следующими правилами: // Parser Rules model : 'MODEL' IDENTIFIER list_dec ; list_dec : declaration* ...

Я, кажется, борюсь с AST - > StringTemplate стороной вещей, вероятно, потому что я пришел от написания парсеров вручную - > LLVM. Я ищу способ автоматического сопоставления правила синтаксического анализа с классом AST, который может его представлять и содержит метод для генерации выходных данных целев...

У меня есть строка с кодом Python, которую я мог бы оценить как Python с literal_eval, если бы в ней были только экземпляры OrderedDict, замененные на {}. Я пытаюсь использовать ast.parse и ast.NodeTransformer для замены, но когда я ловлю узел с nodetype == 'Name' and node.id == 'OrderedDict', я не могу найт...

Я пытаюсь использовать цель ANTLR3 C, чтобы понять АСТ, но сталкиваюсь с некоторыми трудностями. У меня есть простой SQL-подобный грамматический файл: grammar sql; options { language = C; output=AST; ASTLabelType=pANTLR3_BASE_TREE; } sql : VERB fields; fields : FIELD (',' FIELD)*; VERB ...

Я хочу программно редактировать исходный код python. В основном я хочу прочитать создавать АСТ, а затем записать обратно измененный исходный код python (т. е. другой .py file). есть способы разбора / компиляции исходного кода python с использованием стандартных модулей python, таких как ast или compiler. Т...

они генерируются на разных этапах процесса компиляции? Или это просто разные названия для одного и того же?...

У меня есть общее представление о том, что такое АСТ, но я хочу знать, как его построить. Если вам дана грамматика и дерево разбора, как вы строите AST? Как вы это делаете, если вам дают грамматику и выражения?...