Публикации по теме 'abstract-syntax-tree'
Абстрактное синтаксическое дерево (AST) и как оно работает с ReactJS
Абстрактное синтаксическое дерево (AST) — это древовидная структура данных, представляющая структуру и иерархию исходного кода на языке программирования. Каждый узел в дереве соответствует программной конструкции, такой как переменные, функции или выражения. AST используются компиляторами и другими инструментами для понимания, анализа и преобразования кода.
Проще говоря, представьте, что у вас есть предложение, которое вы хотите понять. Вы разбиваете его на слова и фразы, затем..
Вопросы по теме 'abstract-syntax-tree'
Когда использовать абстрактное или конкретное синтаксическое дерево?
Я занимаюсь изучением компиляторов. Лексический анализатор кажется очень простым: возьмите «предложение» и разбейте его на слова (или лексемы). Для обеспечения правильной грамматики необходим синтаксический анализатор. Парсер обычно берет токены и...
1558 просмотров
schedule
15.09.2022
Использование инструментов анализа кода Eclipse CDT для создания подключаемого модуля
Я хочу создать подключаемый модуль, который использует такие инструменты, как AST из CDT, для выполнения статического анализа кода в файлах исходного кода С++. Кто-нибудь знает что-то подобное, на что я могу посмотреть? Где я могу найти хороший...
371 просмотров
schedule
04.12.2023
Прогноз DFA и охват
Начиная с этой грамматики: https://stackoverflow.com/a/14287002/1082002 я бы реализовал простую грамматику, которая принимает и оценивает простой язык следующим образом:
{
if a==c {
a
if a==b {
b
} else {...
259 просмотров
schedule
21.07.2022
как преобразовать запрос улья в абстрактное синтаксическое дерево?
Может ли кто-нибудь сказать мне, как преобразовать запрос куста в абстрактное синтаксическое дерево? Например: выберите * из заказов, где cust_num = 100; Как я могу преобразовать это в AST? и как я могу преобразовать этот AST в дерево QB?...
4332 просмотров
schedule
13.04.2024
Выбор Scala AST против применения
Я запутался, когда подходит выбор, а когда применяется. Я думал, что применение было приложением функции или метода, поэтому
scala> val expr = u reify { Random.nextInt }
expr: reflect.runtime.universe.Expr[Int] = Expr[Int](Random.nextInt())...
687 просмотров
schedule
06.04.2024
Затмение AST, вызов метода с аргументами
Я хочу добавить код ниже, используя ASTRewrite в java-файле. где имя — это переменная
printName(имя);
Я пытаюсь использовать код ниже для этого
MethodInvocation newInvocation = ast.newMethodInvocation();
SimpleName methodAdd =...
521 просмотров
schedule
25.04.2024
Правильно помеченный AST
Я уже некоторое время пытаюсь создать тегированный AST. Давайте представим проблему:
data E a
= V a
| LitInt Int
| LitBool Bool
| FooIntBool (E a) (E a) -- er…
deriving (Eq,Show)
Проблема с этим фрагментом кода для меня...
170 просмотров
schedule
22.04.2024
clang-query и сопоставитель CXXMemberCallExpr
Я пытаюсь найти, как использовать сопоставитель с clang-запросом, используя CXXMemberCallExpr
Я пробовал различные перестановки регистра и не могу заставить его работать. Похоже, что первый символ имеет нижний регистр по сравнению с дампом,...
1318 просмотров
schedule
01.02.2024
Как я могу узнать количество выходов, возвращаемых функцией python?
Представьте, что есть две функции Python:
def f1(x):
return x
def f2(x):
return x,x**2
Я хотел бы узнать, сколько выходов возвращается f1 и сколько выходов возвращается f2 .
Я хотел бы избежать следующего решения:
result =...
749 просмотров
schedule
16.11.2023
bison - передать значения следующему производству
field_dec: type id_list ;
id_list: ID punct id_list
| ID SQUARE_OPEN INTEGER SQUARE_CLOSED punct id_list
| ID punct
| ID...
500 просмотров
schedule
08.02.2024
Преобразование AST для переноса всего тела метода в замыкание
Я пытаюсь сделать что-то довольно простое. Я хотел бы обернуть весь код метода в дополнительный блок закрытия, который измерял бы время выполнения. Прямо сейчас я получаю действительно бесполезное сообщение об ошибке:
Error:Groovyc: NPE while...
435 просмотров
schedule
21.10.2023
Объединение Clang AST
Я пытаюсь работать с AST нескольких файлов одновременно, используя RecursiveASTVisitor , и нашел этот метод buildASTs из ClangTool , который, как говорят, Create an AST for each file specified in the command line and append them to ASTs ....
458 просмотров
schedule
15.12.2023
GroovyAST добавляет общее поле во время компиляции
Я хочу добавить общее поле к некоторым классам во время компиляции. С этой целью я реализовал свои собственные классы аннотаций и преобразования AST, следуя официальной документации. и аннотировать нужные классы аннотацией AST.
Но я получаю эту...
588 просмотров
schedule
22.08.2022
Как узнать тип выбранного члена в Eclipse?
Я совместно разрабатываю плагин Eclipse, где пользователи могут выбирать классы и методы из своего кода и прикреплять их к заметкам, сохраненным в другом файле.
Я хочу найти способ определить, какой тип участника был выбран пользователем при...
110 просмотров
schedule
11.10.2022
Как заменить путь в AST только что проанализированным javascript (строкой)?
https://astexplorer.net/#/gist/70df1bc56b9ee73d19fc949d2ef829ed/7e14217fd8510f0bf83f3372bf08454b7617bce1
Я обнаружил, что теперь я пытаюсь replace выразить выражение, и мне все равно, что в нем.
в этом примере я нашел часть...
1073 просмотров
schedule
05.11.2022
Промывка AST CDT
Я сделал некоторые изменения в AST через ASTRewrite и применил изменения через Change.perform, файл C был обновлен правильно с новыми изменениями (вставить новый узел), но в режиме отладки объект AST не чувствует эти изменения...
45 просмотров
schedule
18.05.2024
Как вставить один узел в абстрактное синтаксическое дерево с помощью javascript (esprima)
есть вопрос про эсприму и прошивку аст узла.
Я пытаюсь сгенерировать один узел ast, чтобы заменить другой узел новым узлом (node = newNode), но это не работает.
estraverse.traverse(tree, {
enter(node, parent) {
try {
if (node.type ===...
310 просмотров
schedule
10.10.2023
Домашнее задание компилятора Lex && Yacc
Привет (мой английский не очень хорошо, я надеюсь, вы поймете), у меня есть миссия сделать компилятор, я уже сделал язык в lex и yacc, но я сильно застрял, наш учитель попросил нас построить дерево AST с языка и распечатать по предварительному...
202 просмотров
schedule
26.07.2022
Использование ParentMap в Clang
Кажется, в Интернете нет примеров, согласно документации virtual bool VisitTranslationUnitDecl(TranslationUnitDecl *decl) {
//decl->dump();
Stmt *stmt = decl->getBody();
mParentMap = new ParentMap(stmt);
return true;
}...
87 просмотров
schedule
20.09.2022
Множественные назначения через морж := оператор?
Я пытался сделать несколько назначений с помощью оператора walrus и видел вопросы на StackOverflow, такие как this , которые также не могут присвоить несколько переменных с помощью оператора walrus, и мне просто интересно, как будет выглядеть...
1364 просмотров
schedule
18.10.2023