1 //
2 // Copyright (c) 2006, Brian Frank and Andy Frank
3 // Licensed under the Academic Free License version 3.0
4 //
5 // History:
6 // 20 Aug 06 Brian Frank Creation
7 //
8
9 **
10 ** Assemble is responsible for assembling the resolved, analyzed,
11 ** normalized abstract syntax tree into it's fcode representation
12 ** in memory as a FPod stored on compiler.fpod.
13 **
14 class Assemble : CompilerStep
15 {
16
17 //////////////////////////////////////////////////////////////////////////
18 // Construction
19 //////////////////////////////////////////////////////////////////////////
20
21 **
22 ** Constructor takes the associated Compiler
23 **
24 new make(Compiler compiler)
25 : super(compiler)
26 {
27 }
28
29 //////////////////////////////////////////////////////////////////////////
30 // Methods
31 //////////////////////////////////////////////////////////////////////////
32
33 **
34 ** Run the step
35 **
36 override Void run()
37 {
38 log.debug("Assemble")
39 compiler.fpod = Assembler.make(compiler).assemblePod
40 bombIfErr
41 }
42
43 }