CommonMark Функции
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
CommonMark Функции
Референца за `book.parle.php` со подобрена типографија и навигација.
Анализа и парсирање
Вовед
Овој екстензија е ЕКСПЕРИМЕНТАЛНА. Поведението на оваа екстензија, вклучувајќи ги имињата на нејзините функции и каква било друга документација што ја опкружува оваа екстензија, може да се промени без претходна најава во идно издание на PHP. Оваа екстензија треба да се користи на ваш сопствен ризик.
Екстензијата parle обезбедува општа намена за лексирање и парсирање. Имплементацијата е базирана на » овие библиотеки и бара » C++14 компатибилен компајлер. Лексерот е базиран на regex совпаѓање, парсерот е LALR(1). Лексерите и парсерите се генерираат во лет и можат да се користат веднаш откако ќе бидат финализирани. Parle се занимава со парсирање и лексирање, соодветните репрезентации на структури на податоци и обработка се задача на имплементаторот. Серијализацијата и генерирањето код сè уште не се поддржани од екстензијата.
Анализата на лексерот е процес на делење на низа од знаци на список на лексеми. Списокот на лексеми потоа може да се користи за синтаксна анализа наспроти формална граматика. Овие операции се познати и како лексирање и парсирање. Оваа документација нема за цел да обезбеди исцрпни информации за лексирање и парсирање. Добри информации во врска со ова се достапни на бројни ресурси на интернет. Вклучени се неколку примери за употреба, за да се покаже функционалноста. Екстензијата е корисна за PHP програмерите кои сакаат да научат или да ги користат парсирањето и лексирањето. Машинските состојби и парсирањето на граматиката не мора да се имплементираат рачно, овие сложени задачи се одземени од parle. Благодарение на тоа, развојот може да се фокусира на решавањето на вистинскиот проблем.
Вообичаениот случај на употреба за parle е кога формат на податоци е премногу сложен за да се справи со regex совпаѓање со PCRE. Практичната примена е тука широка. Било да е тоа специфичен формат на податоци, модификација на однесувањето на постоечките функции, дури и сопствен програмски јазик и пошироко. Помошните методи како Parle\Lexer::dump() за инспекција на генерираната машина на состојби, или Parle\Parser::dump() за инспекција на генерираната граматика, се корисни. Методот Parle\Parser::trace() може да се користи и за следење на операцијата на парсирање.
- Installing/Configuring
- Претходно дефинирани константи
- Parle Совпаѓање на обрасци
- Примери
- Parle\Lexer — Parle совпаѓање на обрасци
- Parle\Lexer::advance — Обработи следно правило на лексерот
- Parle\Lexer::build — Финализирај го сетот правила на лексерот
- Parle\Lexer::callout — Дефинирај callback за токен
- Parle\Lexer::consume — Помине податоци за обработка
- Parle\Lexer::dump — Исфрли ја машината на состојби
- Parle\Lexer::getToken — Преземи ја тековната токен
- Parle\Lexer::insertMacro — Вметни регуларен израз макро
- Parle\Lexer::push — Додај правило за лексер
- Parle\Lexer::reset — Ресетирај го лексерот
- Parle\RLexer — Класата Parle\Lexer
- Parle\RLexer::advance — Обработи следно правило на лексерот
- Parle\RLexer::build — Финализирај го сетот правила на лексерот
- Parle\RLexer::callout — Дефинирај callback за токен
- Parle\RLexer::consume — Помине податоци за обработка
- Parle\RLexer::dump — Исфрли ја машината на состојби
- Parle\RLexer::getToken — Преземи ја тековната токен
- Parle\RLexer::insertMacro — Вметни регуларен израз макро
- Parle\RLexer::push — Додај правило за лексер
- Parle\RLexer::pushState — Притисни нова почетна состојба
- Parle\RLexer::reset — Ресетирај го лексерот
- Parle\Parser — Класата Parle\RLexer
- Parle\Parser::advance — Обработи следно правило за парсер
- Parle\Parser::build — Финализирај ги правилата на граматиката
- Parle\Parser::consume — Консумирај ги податоците за обработка
- Parle\Parser::dump — Исфрли ја граматиката
- Parle\Parser::errorInfo — Преземи ги информациите за грешка
- Parle\Parser::left — Декларирај токен со лева асоцијативност
- Parle\Parser::nonassoc — Декларирај токен без асоцијативност
- Parle\Parser::precedence — Декларирај правило за претходност
- Parle\Parser::push — Додај правило на граматиката
- Parle\Parser::reset — Ресетирај ја состојбата на парсерот
- Parle\Parser::right — Декларирај токен со десна асоцијативност
- Parle\Parser::sigil — Преземи дел од правило што се совпаѓа
- Parle\Parser::sigilCount — Број на елементи во совпаднато правило
- Parle\Parser::sigilName — Преземи име на правило или токен
- Parle\Parser::token — Декларирај токен
- Parle\Parser::tokenId — Земи ID на токен
- Parle\Parser::trace — Следи ја операцијата на парсер
- Parle\Parser::validate — Валидирај влез
- Parle\RParser — Класата Parle\Parser
- Parle\RParser::advance — Обработи следно правило за парсер
- Parle\RParser::build — Финализирај ги правилата на граматиката
- Parle\RParser::consume — Консумирај ги податоците за обработка
- Parle\RParser::dump — Исфрли ја граматиката
- Parle\RParser::errorInfo — Преземи ги информациите за грешка
- Parle\RParser::left — Декларирај токен со лева асоцијативност
- Parle\RParser::nonassoc — Декларирај токен без асоцијативност
- Parle\RParser::precedence — Декларирај правило за претходност
- Parle\RParser::push — Додај правило на граматиката
- Parle\RParser::reset — Ресетирај ја состојбата на парсерот
- Parle\RParser::right — Декларирај токен со десна асоцијативност
- Parle\RParser::sigil — Преземи дел од правило што се совпаѓа
- Parle\RParser::sigilCount — Број на елементи во совпаднато правило
- Parle\RParser::sigilName — Преземи име на правило или токен
- Parle\RParser::token — Декларирај токен
- Parle\RParser::tokenId — Земи ID на токен
- Parle\RParser::trace — Следи ја операцијата на парсер
- Parle\RParser::validate — Валидирај влез
- Parle\Stack — Класата Parle\RParser
- Parle\Stack::pop — Отстрани ставка од стек
- Parle\Stack::push — Вметни ставка во стек
- Parle\Token — Класата Parle\Stack
- Parle\ErrorInfo — Класата Parle\Token
- Parle\LexerException — Класата Parle\ErrorInfo
- Parle\ParserException — Parle\LexerException класа