Beispiel #1
0
from .. import *

from bfg9000 import options as opts
from bfg9000.file_types import *
from bfg9000.languages import Languages
from bfg9000.path import Path, Root
from bfg9000.tools.lex import LexBuilder

known_langs = Languages()
with known_langs.make('lex') as x:
    x.vars(compiler='LEX', flags='LFLAGS')


class TestLexBuilder(CrossPlatformTestCase):
    def __init__(self, *args, **kwargs):
        super().__init__(clear_variables=True, *args, **kwargs)

    def setUp(self):
        self.lex = LexBuilder(self.env, known_langs['lex'], ['lex'], 'version')
        self.compiler = self.lex.transpiler

    def test_properties(self):
        self.assertEqual(self.compiler.num_outputs, 'all')
        self.assertEqual(self.compiler.deps_flavor, None)

    def test_call(self):
        self.assertEqual(self.compiler('in', 'out'),
                         [self.compiler, '-o', 'out', 'in'])
        self.assertEqual(self.compiler('in', 'out', ['flags']),
                         [self.compiler, 'flags', '-o', 'out', 'in'])
Beispiel #2
0
 def setUp(self):
     self.known_langs = Languages()
     with self.known_langs.make('c') as x:
         x.vars(compiler='CC')
         x.exts(source='.c', header='.h')