<!--
  ~ This file is part of the Alice package.
  ~
  ~ (c) Nelmio <hello@nelm.io>
  ~
  ~ For the full copyright and license information, please view the LICENSE
  ~ file that was distributed with this source code.
  -->

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>

        <service id="nelmio_alice.fixture_builder.expression_language.lexer"
                 alias="nelmio_alice.fixture_builder.expression_language.lexer.empty_value_lexer" />

        <service id="nelmio_alice.fixture_builder.expression_language.lexer.empty_value_lexer"
                 class="Nelmio\Alice\FixtureBuilder\ExpressionLanguage\Lexer\EmptyValueLexer">

            <argument type="service" id="nelmio_alice.fixture_builder.expression_language.lexer.reference_escaper_lexer" />
        </service>

        <service id="nelmio_alice.fixture_builder.expression_language.lexer.reference_escaper_lexer"
                 class="Nelmio\Alice\FixtureBuilder\ExpressionLanguage\Lexer\ReferenceEscaperLexer">
            <argument type="service" id="nelmio_alice.fixture_builder.expression_language.lexer.globals_patterns_lexer" />
        </service>

        <service id="nelmio_alice.fixture_builder.expression_language.lexer.globals_patterns_lexer"
                 class="Nelmio\Alice\FixtureBuilder\ExpressionLanguage\Lexer\GlobalPatternsLexer">

            <argument type="service" id="nelmio_alice.fixture_builder.expression_language.lexer.function_lexer" />
        </service>

        <service id="nelmio_alice.fixture_builder.expression_language.lexer.function_lexer"
                 class="Nelmio\Alice\FixtureBuilder\ExpressionLanguage\Lexer\FunctionLexer">
            <argument type="service" id="nelmio_alice.fixture_builder.expression_language.lexer.string_then_reference_lexer" />
        </service>

        <service id="nelmio_alice.fixture_builder.expression_language.lexer.string_then_reference_lexer"
                 class="Nelmio\Alice\FixtureBuilder\ExpressionLanguage\Lexer\StringThenReferenceLexer">
            <argument type="service" id="nelmio_alice.fixture_builder.expression_language.lexer.sub_patterns_lexer" />
        </service>

        <service id="nelmio_alice.fixture_builder.expression_language.lexer.sub_patterns_lexer"
                 class="Nelmio\Alice\FixtureBuilder\ExpressionLanguage\Lexer\SubPatternsLexer">
            <argument type="service" id="nelmio_alice.fixture_builder.expression_language.lexer.reference_lexer" />
        </service>

        <service id="nelmio_alice.fixture_builder.expression_language.lexer.reference_lexer"
                 class="Nelmio\Alice\FixtureBuilder\ExpressionLanguage\Lexer\ReferenceLexer">
        </service>

    </services>

</container>
