/* Raiz(ASA) | | DeclaraçõesGlobais + Funções DeclaracaoGlobal | | const? TIPO ID (= EAnd)? Função | | Declaracao => TIPO ID (= EAnd)? Attribuição => ID = EAnd IF, WHILE, SWITCH, FuncCall, RETURN EAnd | | EOR ( 'and' EAnd)? EOR => ENot ('or' EAnd)? ENot => 'not'? ER ER => E ((>=, <=, ==, >, <) E)? E => factor ((+, -) E)? factor=> term ((*, /, %) factor)? term => literal || arrayAccess || FuncCall || ID || '('EAnd')' arrayAccess | | ID'['E']'('['E']')* FuncCall | | ID'('p.a')' p.a => E (, p.a)? **/