Program

Program symbol, a symbol node.

Declaration

Sintaxe

Program(symbol_table symtab, identifier name, identifier* dependencies,
	    stmt* body)

Argumentos

symtab the symbol table of the program.

name the name of the program.

dependencies the module names that the program depends on.

body the list of statements that the program contains.

Valores de retorno

Nenhum.

Descrição

ASR pass transforms (in-place) the ASR tree and wraps all global statements and expressions into a program.

Tipos

Exemplos

program expr2
integer :: x
x = (2+3)*5
print *, x
end program

ASR:

(TranslationUnit
    (SymbolTable
        1
        {
            expr2:
                (Program
                    (SymbolTable
                        2
                        {
                            x:
                                (Variable
                                    2
                                    x
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 4 [])
                                    Source
                                    Public
                                    Required
                                    .false.
                                )

                        })
                    expr2
                    []
                    [(=
                        (Var 2 x)
                        (IntegerBinOp
                            (IntegerBinOp
                                (IntegerConstant 2 (Integer 4 []))
                                Add
                                (IntegerConstant 3 (Integer 4 []))
                                (Integer 4 [])
                                (IntegerConstant 5 (Integer 4 []))
                            )
                            Mul
                            (IntegerConstant 5 (Integer 4 []))
                            (Integer 4 [])
                            (IntegerConstant 25 (Integer 4 []))
                        )
                        ()
                    )
                    (Print
                        ()
                        [(Var 2 x)]
                        ()
                        ()
                    )]
                )

        })
    []
)

Veja Também

Module, Function.