Les arbres de syntaxe abstraite (AST) représentent la structure récursive d'un document formel (code source du programme).

Plus à propos abstract-syntax-tree...

J'ai du mal à créer un algorithme, qui prend un tableau d'éléments frères (représentations abstraites de nœuds DOM) et renvoie ce tableau amélioré avec l'imbrication. La règle d'imbrication est assez simple: chaque titre commence une nouvelle section, qui s'étend jusqu'à l'en-tête suivant du même n....
J'utilise go / analysis pour créer mon propre outil d'analyse statique. Je ne sais toujours pas comment trouver les informations de def d'ast.Ident. Voici mes données de test package randomcheck func xxx() { } func demo() { xxx() } Et mon propre analyseur import ( "fmt" "go/ast" ....
J'utilise lark pour analyser du texte et j'avais besoin d'un moyen de faire correspondre un NAME qui ne contenait pas certains mots clés. J'ai les mots-clés répertoriés dans un terminal. Je ne sais tout simplement pas comment utiliser le terminal dont j'ai besoin. Voici comment j'ai formaté mes mot....
5 mars 2021 à 21:57
Quelle est la grammaire correcte pour une expression de membre standard? Par exemple. l'ast du code: test.test.function () serait MemberExpression ("test", MemberExpression ("test", MethodCall (.......
J'ai un gros projet et un grand nombre de fonctions membres de classe C ++ de la forme: Return CClass::MemberFunction( Arg1 arg1, //... std::weak_ptr<IMemberFunctionListenerInterface> listener) { //... } J'essaie d'écrire un matcher qui trouve des fonctions comme celles-ci, qui ont des arg....
J'essaye de remplacer les noms dans un fichier python. Pour cela, j'ai écrit une classe qui reconnaît et remplace les noms. Tout fonctionne bien. Cependant, les noms de fonction des modules importés sont également .......
27 févr. 2021 à 22:49
J'essaie d'analyser les fichiers c en utilisant pycparser et de trouver l'instruction switch J'ai généré l'ast en utilisant https://github.com/eliben/ pycparser / blob / master / examples / explore_ast.py ce lien. puis en utilisant n = len (ast.ext) j'ai trouvé la longueur des exts générés à part....
15 févr. 2021 à 11:26
J'essaie d'implémenter des opérateurs d'incrémentation dans mon analyseur. Cependant, je ne sais pas si un opérateur d'incrémentation doit être traité comme une instruction ou une expression. Il est logique de l'implémenter en tant qu'instruction car on peut l'utiliser comme instruction autonome t....
J'ai cet exemple de code python simple qui analyse un code python et extrait les variables qui y sont assignées: import ast import sys import astunparse import json tree=ast.parse('''\ a = 10 b,c=5,6 [d,e]=7,8 (f,g)=9,10 h=20 ''',mode="exec") for thing in tree.body: if isinstance(thing, ast.As....
J'essaie d'extraire toutes les variables de mon code qui n'ont pas d'indentation, voici un exemple simple: import ast import astunparse class AnalysisNodeVisitor(ast.NodeVisitor): def __init__(self, nodename): super().__init__() self.nodename=nodename self.setVariables=....
J'ai lu un tas de questions existantes ici sur StackOverflow, mais je n'arrive pas à comprendre ma grammaire. statement "Statement" = assignment / primitive / reference / operation operation "Operation" = statement operator:operator statement operator "Operator" = "+" * Notez que je pou....
J'ai une question. J'essaye de créer un arbre. Le code complet est volumineux, il m'est donc difficile de le saisir ici. Donc, un résumé de celui-ci est donné ci-dessous. struct sample *fn_02(void); struct sample *fn_03(void); // Main Function int main(void) { struct sample *tree; tree ....
J'essaie de créer un script pour extraire des morceaux du code erlang des fichiers source, mais mes approches ne fonctionnent pas. Voici ce que j'ai essayé: {ok, Forms} = epp:parse_file("src/day_tasks.erl", [{includes, "include"}]), file:write_file("/projects/result.txt", io_lib:format("~p", [Form....
22 janv. 2021 à 23:40
J'essaie d'implémenter des boucles for dans mon interpréteur, et j'essaie maintenant d'implémenter les instructions à un jeton continue et break dans l'analyseur. Compte tenu de mon lexer, Lexer "break" -> TOKEN::TBREAK "continue" -> TOKEN::TCONTINUE J'envisage deux façons de les implémenter via l'....
J'ai donc eu quelques scripts non vérifiés qui sont générés dynamiquement et doivent être exécutés. J'ai donc dû limiter l'accès à un module qui dans mon cas est io, os, shutil, etc ... Maintenant c'est quelque chose que j'ai essayé from types import ModuleType def generate_empty_globals(): re....
J'ai écrit une bibliothèque qui fonctionne au niveau ast. Parfois, la sortie générée dépasse la limite de longueur de ligne de linter. "foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz" Comment générer ce type de code à la place? "foo_bar_can_haz_foo_....
20 janv. 2021 à 02:02
Je suis tombé sur cette erreur def test_rec (): import ast exec (compile (ast.fix_missing_locations (ast.parse ("" "def fact (n): return 1 if n == 0 else n * fact (n - 1) print (fait (5)) .......
17 janv. 2021 à 23:00
J'utilise actuellement syn en suivant un exemple pour créer un AST qui peut être muté. Je comprends que je peux modifier le nœud que je parcours (comme indiqué ci-dessous dans mon code actuel) mais je suis curieux de savoir si je peux .......
17 janv. 2021 à 22:30
J'essaie d'utiliser syn pour créer un AST à partir d'un fichier Rust, puis d'utiliser quote pour l'écrire dans un autre. Cependant, quand je l'écris, cela met des espaces supplémentaires entre tout. Notez que l'exemple ci-dessous est .......
17 janv. 2021 à 22:21
Quel est l'argument ctx dans la représentation Python AST? Par exemple: >>> print (ast.dump (ast.parse ('- a'))) Module (body = [Expr (value = UnaryOp (op = USub (), operand = Name (id = 'a' ', ctx = Charger ())))]) .......
Je suis nouveau dans Antlr mais j'essaye de changer une partie de la grammaire de mon projet existant. L'exemple de la grammaire ressemble à ceci ... factor: ava | NOT ^ facteur | (LPAREN! Expr RPAREN!); .......
19 déc. 2020 à 03:08
Je souhaite récolter des informations sur les classes, les propriétés et les méthodes à l'aide du compilateur Typescript. J'utilise nodejs et souhaite utiliser les informations pour créer des formulaires côté client, etc. en fonction de mon côté serveur .......
Après avoir lu l'article Utilisation de l'API du compilateur, j'ai pu obtenir l'AST de string-code. Mais quand j'essaye de générer le code (par escodegen) à partir d'AST (pas de transpiler) en code , j'ai une erreur: Unknown node type: undefined Existe-t-il un moyen de générer l'ast dans le code....
9 déc. 2020 à 12:23
J'ai une structure rugueuse semblable à l'AST; un tableau contenant soit une chaîne, soit un objet, où l'objet a un identifiant et des arguments, où les arguments sont un tableau d'une chaîne ou d'un objet, comme ci-dessus. Le but est de générer une chaîne à partir des chaînes jointes et des chaînes....
30 nov. 2020 à 13:08
pour le contexte - les expressions OCL seront fournies avec un fichier "Ecore" contenant des informations concernant l'UML auquel l'expression est associée. Dans le cadre d'une recherche que je mène, j'essaie d'analyser une expression OCL dans un arbre de syntaxe abstraite (AST) que je veux pouvoi....
13 nov. 2020 à 18:00