Публикации по теме 'abstract-syntax-tree'


Абстрактное синтаксическое дерево (AST) и как оно работает с ReactJS
Абстрактное синтаксическое дерево (AST) — это древовидная структура данных, представляющая структуру и иерархию исходного кода на языке программирования. Каждый узел в дереве соответствует программной конструкции, такой как переменные, функции или выражения. AST используются компиляторами и другими инструментами для понимания, анализа и преобразования кода. Проще говоря, представьте, что у вас есть предложение, которое вы хотите понять. Вы разбиваете его на слова и фразы, затем..

Вопросы по теме 'abstract-syntax-tree'

Когда использовать абстрактное или конкретное синтаксическое дерево?
Я занимаюсь изучением компиляторов. Лексический анализатор кажется очень простым: возьмите «предложение» и разбейте его на слова (или лексемы). Для обеспечения правильной грамматики необходим синтаксический анализатор. Парсер обычно берет токены и...
1558 просмотров

Использование инструментов анализа кода Eclipse CDT для создания подключаемого модуля
Я хочу создать подключаемый модуль, который использует такие инструменты, как AST из CDT, для выполнения статического анализа кода в файлах исходного кода С++. Кто-нибудь знает что-то подобное, на что я могу посмотреть? Где я могу найти хороший...
371 просмотров

Прогноз 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 просмотров

Затмение AST, вызов метода с аргументами
Я хочу добавить код ниже, используя ASTRewrite в java-файле. где имя — это переменная printName(имя); Я пытаюсь использовать код ниже для этого MethodInvocation newInvocation = ast.newMethodInvocation(); SimpleName methodAdd =...
521 просмотров

Правильно помеченный AST
Я уже некоторое время пытаюсь создать тегированный AST. Давайте представим проблему: data E a = V a | LitInt Int | LitBool Bool | FooIntBool (E a) (E a) -- er… deriving (Eq,Show) Проблема с этим фрагментом кода для меня...
170 просмотров

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 просмотров

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 просмотров

GroovyAST добавляет общее поле во время компиляции
Я хочу добавить общее поле к некоторым классам во время компиляции. С этой целью я реализовал свои собственные классы аннотаций и преобразования AST, следуя официальной документации. и аннотировать нужные классы аннотацией AST. Но я получаю эту...
588 просмотров

Как узнать тип выбранного члена в Eclipse?
Я совместно разрабатываю плагин Eclipse, где пользователи могут выбирать классы и методы из своего кода и прикреплять их к заметкам, сохраненным в другом файле. Я хочу найти способ определить, какой тип участника был выбран пользователем при...
110 просмотров

Как заменить путь в AST только что проанализированным javascript (строкой)?
https://astexplorer.net/#/gist/70df1bc56b9ee73d19fc949d2ef829ed/7e14217fd8510f0bf83f3372bf08454b7617bce1 Я обнаружил, что теперь я пытаюсь replace выразить выражение, и мне все равно, что в нем. в этом примере я нашел часть...
1073 просмотров

Промывка 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