|  | @@ -0,0 +1,32 @@
 | 
	
		
			
				|  |  | +import Lexers from './../grammar/';
 | 
	
		
			
				|  |  | +import * as Expressions from './../js/ast/expressions/';
 | 
	
		
			
				|  |  | +import * as Commands from './../js/ast/commands/';
 | 
	
		
			
				|  |  | +import {Types} from './../js/ast/types';
 | 
	
		
			
				|  |  | +import {
 | 
	
		
			
				|  |  | +    IVProgParser
 | 
	
		
			
				|  |  | +} from './../js/ast/ivprogParser';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +describe('Variable declaration inside a function', () => {
 | 
	
		
			
				|  |  | +    let input = `programa {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      funcao inicio() {
 | 
	
		
			
				|  |  | +        inteiro a
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }`;
 | 
	
		
			
				|  |  | +    const lexer = Lexers['pt_br'];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const ast = {
 | 
	
		
			
				|  |  | +      global: [ ],
 | 
	
		
			
				|  |  | +      functions: [
 | 
	
		
			
				|  |  | +        new Commands.Function(null,Types.VOID,[],
 | 
	
		
			
				|  |  | +        new Commands.CommandBlock([
 | 
	
		
			
				|  |  | +          new Commands.Declaration('a',Types.INTEGER,null,false)],[]))
 | 
	
		
			
				|  |  | +      ]
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    it(`must be inside the variables list`, () => {
 | 
	
		
			
				|  |  | +        const as = new IVProgParser(input, lexer);
 | 
	
		
			
				|  |  | +        const fun = as.parseTree();
 | 
	
		
			
				|  |  | +        expect(fun).toEqual(ast);
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +});
 |