Phlexy\LexerFactory\Stateful\UsingCompiledRegex::createLexer PHP Method

createLexer() public method

public createLexer ( array $lexerDefinition, $additionalModifiers = '' )
$lexerDefinition array
    public function createLexer(array $lexerDefinition, $additionalModifiers = '')
    {
        $initialState = key($lexerDefinition);
        $stateData = array();
        foreach ($lexerDefinition as $state => $regexToActionMap) {
            $regexes = array_keys($regexToActionMap);
            $compiledRegex = $this->dataGen->getCompiledRegex($regexes, $additionalModifiers);
            $offsetToLengthMap = $this->dataGen->getOffsetToLengthMap($regexes);
            $offsetToActionMap = array_combine(array_keys($offsetToLengthMap), $regexToActionMap);
            $stateData[$state] = array('compiledRegex' => $compiledRegex, 'offsetToActionMap' => $offsetToActionMap, 'offsetToLengthMap' => $offsetToLengthMap);
        }
        return new \Phlexy\Lexer\Stateful\UsingCompiledRegex($initialState, $stateData);
    }
UsingCompiledRegex