Свързани публикации 'abstract-syntax-tree'


Мутирайте код като шеф — с Angular schematics
За изпълнение с помощта на Angular CLI, разработчиците трябва да знаят за схемите на Angular. ng add , ng update и ng generate използват схеми за добавяне, актуализиране и конфигуриране на библиотеки и генериране на код за приложения. По време на изпълнение получавате достъп до виртуална файлова система и можете да променяте изходния код според нуждите си. „Но за мутация на код трябва да работя с AST. Толкова е трудно.” - кажи ти. И си прав! Тази статия ви казва как се..

Свързани въпроси 'abstract-syntax-tree'

Рекурсивно низходящ анализ и абстрактни синтактични дървета
Кодирам твърдо рекурсивен приличен анализатор, най-вече за учебни цели и се натъкнах на някои проблеми. Ще използвам този кратък откъс от граматиката на CSS3 като пример: simple_selector = type_selector | universal; type_selector = [...
1087 изгледи

Получаване на върнат тип в оператор за присвояване
Как мога да получа типа на изявление за присвояване с помощта на JDT. Преминавам през файл с клас, използвайки ASTVisitor, за да намеря екземплярите на присвояване, които имат дата (Календар) като тип. Въпреки че мога да намеря такива екземпляри...
197 изгледи
schedule 18.09.2022

Извличане на всички имена на променливи от декларации на променливи с помощта на Eclipse JDT
Работя върху анализирането на изходния код с помощта на Eclipse JDT. В момента имам програма, която може да получи някакъв код, да го конвертира в AST и след това да направи някои пояснения. Сега, това, което искам да направя, е за всяка...
2831 изгледи

Кое е по-бързо и по-чисто, генериране на AST и повторение върху него или генериране на код?
Написах интерпретатор на JavaScript за малък език, използвайки jison , който е JS порт на bison. Езикът се използва за оценка на изрази и условия. В момента оценката е смесена с анализирането. Опитвам се да го оптимизирам и тясното място е...
392 изгледи

изтриване на възел в AST база при условие
Нов съм в използването на ANTLR. Имам граматиката на ANTLR, която създава AST. Искам да проверя дали ComparisonExpr съдържа FuzzyExpr, тогава искам да изтрия този ComparisonExpr възел и връзката („и“, „или“) пред този ComparisonExpr (ако има) от...
60 изгледи
schedule 13.10.2022

Регулярен израз за анализиране на подобни инструкции на асемблер
Интрото е малко дълго, така че моля, изтърпете ме. :) Пиша прост парсер, базиран на регулярен израз, за ​​голям изходен файл, написан на асемблер. Повечето от тези инструкции са просто преместване, добавяне, изваждане и скачане, но това е доста...
1113 изгледи

В AST Visitor, как мога да разбера собствеността на кой възел посещавам?
Програмирам AST Visitor (eclipse JDT). Възел EnumDeclaration съдържа следните структурни свойства: JAVADOC , MODIFIERS , NAME , SUPER_INTERFACE_TYPES , ENUM_CONSTANTS и BODY_DECLARATIONS . Когато посещавам дъщерен възел на...
752 изгледи

Как да редуцирам моето дърво за анализ в абстрактно синтактично дърво?
Какви са общите стратегии за намаляване на дърво за анализ (т.е. конкретно синтактично дърво) в абстрактно синтактично дърво? Например имам следното граматично правило: statement_list : statement | statement_list statement...
2035 изгледи

JavaCC AST представяне
Използвам JavaCC за генериране на анализатор и един метод е да приема 4 + 5 например, което работи добре. Сега обаче трябва да модифицирам това, така че да отпечатва PlusNode(IntegerLiteral(4) , IntegerLiteral(5)) Промених някакъв код за това,...
345 изгледи
schedule 27.12.2023

Парсинг на Spirit qi до абстрактно синтактично дърво за вложени функции
Опитвам се да създам анализатор, използвайки парсера spirit qi на boost. Това е синтактичен анализ на низ, който съдържа три типа стойности. Константа, променлива или функция. Функциите могат да бъдат вложени една в друга. Тестовият низ е f(a, b)...
1486 изгледи

Подходящ AST Matcher за родителска декларация на клас
Дадена йерархия на класове: class A {}; class B {}; class C : public A {}; class D : public C {}; Опитвам се да преработя клас C, за да наследя от клас B, а не от клас A. Мога лесно да получа израза за дефиниция, използвайки recordDecl :...
1046 изгледи
schedule 20.10.2022

Как да използвате посетител за AST в java
Използвам org.eclipse.jdt.core.dom за генериране на AST на даден изходен код на Java. След генериране на AST имам коренния възел. Как мога да използвам ASTVisitor , за да мога да анализирам моя AST, за да получа всички листови възли?
3352 изгледи
schedule 15.03.2024

анализатор на прост израз на критерии с antlr3
Искам да създам прост анализатор на изрази на критерии с antlr3 Актуализирано: отделни правила за израз И/ИЛИ за поддържане на различна йерархия И/ИЛИ, но има други проблеми: ако изразът е нещо като: a = 1 и b = 2 и c = 3, дървото трябва да бъде...
444 изгледи
schedule 18.03.2024

общ конструктор на AST
Eclipse org.eclipse.jdt.astview върши чудесна работа при предоставянето на абстрактни синтактични дървета ... но е пригоден за Java ... има ли наличен пакет с отворен код, който прави същото за други популярни езици? Може да е някакъв модул от...
1879 изгледи
schedule 17.05.2024

Как да генерирам контролен поток на AST (представен в XML) с помощта на Python?
Имам AST на езика WHILE (http://www.program-analysis.com/while.html), присъстващ в XML формат. В момента не обработвам извиквания на функции или рекурсия. Трябва да генерирам контролния поток за тази програма. Примерна програма (числата след //...
1570 изгледи

Преобразуване на Elixir AST в Erlang AST? Възможно ли е?
Възможно ли е да се вземе цитиран израз на Elixir (AST дърво) като този: quote do: 1 + 1 => {:+, [context: Elixir, import: Kernel], [1, 1]} И да го конвертирате в Erlang AST? Прегледах модула Code, както и някои от модулите на ядрото,...
1000 изгледи

ANTLR4: няма жизнеспособна алтернатива на входа (генериране на AST)
Е, имам прост ANTLR код whilestmt: 'while' exp 'do' stmt; forstmt: 'for' VAR 'equal' exp TO exp 'do' stmt; dosthstmt: 'something'; stmt: whilestmt|forstmt|dosthstmt; exp: exp ADDOP exp...
108 изгледи
schedule 01.04.2024