All files / vsl/generator Generator.js

0% Statements 0/6
100% Branches 0/0
0% Functions 0/2
0% Lines 0/6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47                                                                                             
import Generatable from './Generatable';
 
/**
 * Controls LLVM IR genereration. Handles expressions, registers, and related
 * operations.
 */
export default class Generator {
    constructor() {
        /**
         * A list of the forward or linkage declarations
         * 
         * @param {LLVMMethodPrototype[]}
         */
        this.declarations = [];
        
        /**
         * A list of type declarations
         * 
         * @type {LLVMType[]}
         */
        
        /**
         * A list of LLVM method declarations
         * 
         * @param {LLVMMethod[]}
         */
        this.methods = [];
        
        /**
         * A list of top-level, global, LLVM attributes. 
         * 
         * @type {LLVMAttribute[]}
         */
        this.attributes = []
    }
    
    /** @override */
    generate() {
        let items = [];
        
        for (let i = 0; i < this.attributes.length; i++) {
            items.push(
                `attributes #${i} = { ${this.attribues.generate()} }`
            )
        }
    }
}