@@ -0,0 +1,2149 @@
+package compiler.syntatic;%0A%0A%0Aimport compiler.lexic.LexicalAnalyzer;%0Aimport compiler.lexic.TokenType;%0A%0A// This class holds all LALG rules. For more information check LALG_grammer.pdf at projects root%0Apublic final class RuleAnalyzer %7B%0A%0A    public static void programa(LexicalAnalyzer lexic) %7B%0A        // FIXME: return type form lexic.next shoud be TokenType%0A        if(lexic.next() == TokenType.RESERVED_PROGRAM)%7B%0A            if(lexic.next() == TokenType.ID) %7B%0A                if (lexic.next() == TokenType.SEMICOLOM) %7B%0A                    corpo(lexic);%0A                %7D else %7B%0A                    throw new Error(%22Missing semicolon%22);%0A                %7D%0A            %7D else %7B%0A                throw new Error(%22Missing identifier%22);%0A            %7D%0A        %7D else %7B%0A            throw new Error(%22Missing reserved word 'program' at programs beginning%22);%0A        %7D%0A%0A%0A    %7D%0A%0A    public static void corpo(LexicalAnalyzer lexic) %7B%0A    %7D%0A%0A    public static void dc() %7B%0A%0A    %7D%0A%0A    public static void dc_c() %7B%0A    %7D%0A%0A    public static void dc_v() %7B%0A    %7D%0A%0A    public static void tipo_var() %7B%0A    %7D%0A%0A    public static void variaveis() %7B%0A    %7D%0A%0A    public static void mais_var() %7B%0A    %7D%0A%0A    public static void dc_p() %7B%0A    %7D%0A%0A    public static void parametros() %7B%0A    %7D%0A%0A    public static void lista_par() %7B%0A    %7D%0A%0A    public static void mais_par() %7B%0A    %7D%0A%0A    public static void corpo_p() %7B%0A    %7D%0A%0A    public static void dc_loc() %7B%0A    %7D%0A%0A    public static void lista_arg() %7B%0A    %7D%0A%0A    public static void argumentos() %7B%0A    %7D%0A%0A    public static void mais_ident() %7B%0A    %7D%0A%0A    public static void pfalsa() %7B%0A    %7D%0A%0A    public static void comandos() %7B%0A    %7D%0A%0A    public static void cmd() %7B%0A    %7D%0A%0A    public static void condicao() %7B%0A    %7D%0A%0A    public static void relacao() %7B%0A    %7D%0A%0A    public static void expressao() %7B%0A    %7D%0A%0A    public static void op_un() %7B%0A    %7D%0A%0A    public static void outros_termos() %7B%0A    %7D%0A%0A    public static void op_ad() %7B%0A    %7D%0A%0A    public static void termo() %7B%0A    %7D%0A%0A    public static void mais_fatores() %7B%0A    %7D%0A%0A    public static void op_mul() %7B%0A    %7D%0A%0A    public static void fator() %7B%0A    %7D%0A%0A    public static void numero() %7B%0A    %7D%0A%7D%0A

add programa rule initial implementation