7
7
from astor import code_gen as codegen
8
8
9
9
import basilisp .lang .runtime as runtime
10
+ from basilisp .lang .compiler .analyzer import ( # noqa
11
+ AnalyzerContext ,
12
+ WARN_ON_SHADOWED_NAME ,
13
+ WARN_ON_SHADOWED_VAR ,
14
+ WARN_ON_UNUSED_NAMES ,
15
+ analyze_form ,
16
+ )
10
17
from basilisp .lang .compiler .exception import CompilerException , CompilerPhase # noqa
11
18
from basilisp .lang .compiler .generator import ( # noqa
12
19
GeneratedPyAST ,
19
26
statementize as _statementize ,
20
27
)
21
28
from basilisp .lang .compiler .optimizer import PythonASTOptimizer
22
- from basilisp .lang .compiler .parser import ( # noqa
23
- ParserContext ,
24
- WARN_ON_SHADOWED_NAME ,
25
- WARN_ON_SHADOWED_VAR ,
26
- WARN_ON_UNUSED_NAMES ,
27
- parse_ast ,
28
- )
29
29
from basilisp .lang .typing import ReaderForm
30
30
from basilisp .lang .util import genname
31
31
@@ -42,25 +42,25 @@ def to_py_str(t: ast.AST) -> str:
42
42
43
43
44
44
class CompilerContext :
45
- __slots__ = ("_filename" , "_gctx " , "_pctx " , "_optimizer" )
45
+ __slots__ = ("_filename" , "_actx " , "_gctx " , "_optimizer" )
46
46
47
47
def __init__ (self , filename : str , opts : Optional [Mapping [str , bool ]] = None ):
48
48
self ._filename = filename
49
+ self ._actx = AnalyzerContext (filename = filename , opts = opts )
49
50
self ._gctx = GeneratorContext (filename = filename , opts = opts )
50
- self ._pctx = ParserContext (filename = filename , opts = opts )
51
51
self ._optimizer = PythonASTOptimizer ()
52
52
53
53
@property
54
54
def filename (self ) -> str :
55
55
return self ._filename
56
56
57
57
@property
58
- def generator_context (self ) -> GeneratorContext :
59
- return self ._gctx
58
+ def analyzer_context (self ) -> AnalyzerContext :
59
+ return self ._actx
60
60
61
61
@property
62
- def parser_context (self ) -> ParserContext :
63
- return self ._pctx
62
+ def generator_context (self ) -> GeneratorContext :
63
+ return self ._gctx
64
64
65
65
@property
66
66
def py_ast_optimizer (self ) -> PythonASTOptimizer :
@@ -104,7 +104,7 @@ def compile_and_exec_form( # pylint: disable= too-many-arguments
104
104
105
105
final_wrapped_name = genname (wrapped_fn_name )
106
106
107
- lisp_ast = parse_ast (ctx .parser_context , form )
107
+ lisp_ast = analyze_form (ctx .analyzer_context , form )
108
108
py_ast = gen_py_ast (ctx .generator_context , lisp_ast )
109
109
form_ast = list (
110
110
map (
@@ -191,7 +191,9 @@ def compile_module(
191
191
_bootstrap_module (ctx .generator_context , ctx .py_ast_optimizer , module )
192
192
193
193
for form in forms :
194
- nodes = gen_py_ast (ctx .generator_context , parse_ast (ctx .parser_context , form ))
194
+ nodes = gen_py_ast (
195
+ ctx .generator_context , analyze_form (ctx .analyzer_context , form )
196
+ )
195
197
_incremental_compile_module (
196
198
ctx .py_ast_optimizer ,
197
199
nodes ,
0 commit comments