forked from zbraniecki/pyast
-
Notifications
You must be signed in to change notification settings - Fork 0
Basic set of classes for building abstract syntax trees
License
glan-wxl/pyast
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PyAST is a library that allows for creating AST structures using declarative programming form. example: == jsast.py == import pyast as ast class Node(ast.Node): pass class Statement(Node): pass class Expression(Pattern): pass class Operator(Node): token = ast.field(("+","=","-","==","!=",">",">")) class Identifier(Expression): name = ast.field((str, unicode)) class Literal(Expression): value = ast.field((str, bool, int, NoneType)) class Program(ast.Node): body = ast.seq(Statement, null=True) class ExpressionStatement(Statement): expression = ast.field(Expression) class AssignmentExpression(Expression): operator = ast.field(Operator) left = ast.field(Expression) right = ast.field(Expression) == main.py == from jsast import * prog = Program() prog.body.append( ExpressionStatement( AssignmentExpression( Operator("="), Identifier("x"), Literal(2) ))) # result: x=2; ========= pyast.DEBUG variable defines if pyast operates in DEBUG mode in which the strong typing is enforced at cost of performance, or optimized mode when all the checks are inactive.
About
Basic set of classes for building abstract syntax trees
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 100.0%