services:
    rulerz:
        class: RulerZ\RulerZ
        arguments: [ "@rulerz.compiler" ]

    rulerz.compiler:
        class: RulerZ\Compiler\Compiler
        arguments: [ "@rulerz.evaluator" ]
        public: false

    rulerz.evaluator:
        alias: rulerz.evaluator.file
        public: false

    rulerz.evaluator.file:
        class: RulerZ\Compiler\FileEvaluator
        public: false
        arguments:  [ "%rulerz.cache_directory%" ]

    rulerz.parser:
        class: RulerZ\Parser\Parser
        public: false
