[Проект] Go alternative на Flex

  1. Goflex

    A lexical analyzer generator.

    Идеята е remake на flex. { документация }

    Background

    • Искам да си направя собствен език и за това ми трябва имплементация на компилатор.
    • За целта първо ми трябва lexer.
    • Не искам сам да си пиша лексъра from scratch, за това ще използвам туула.

    Usage

    • Според някакъв DSL, си дефинирам правилата (регулярните изрази), които определят лексемите в моя език (сиреч отделните думи които имат някакво значение).

    • Компилирам програмата, и като output получавам tokenizer за моя специфичен език.

    • С Компилирания токенайзър мога да правя каквото ми трябва по-нататък в компилирането на програма, или пък мога да го ползвам стендалоун.

    Features

    • Дефинираш си собствени лексически правила и получаваш наготово tokenizer
    • Ще можеш да закачаш произволен callback, който да се повика при match-ване на tokeх
    • Output на автомата ( transducer-а ), който ще разпознава езика който генерираме
    • Чиста документация и examples

    Допълнително

    По-яко ще е според мен да се дистрибутира под формата на библиотека, която може да се extend-ва. За имплементацията най-вероятно ще ми трябва и библиотека, която генерира по регулярен израз автомати и transducer-и, което може да се branchout-не и като additional библиотека за поддръжка.

  2. На мен ми харесва идеята. Единствено ме притеснява, че си се ограничил до регулярни изрази в имплементацията. Може би ги премахни от условието на задачата ти. Ще намериш по - добри начини. Ако не, все пак ползвай регулярни изрази.

    Идеята ти да е библиотека вместо изпълнима програма е много хубава. За да я реализираш добре ще трябва да имаш много хубава документация и примери. Наистина много хубави. В твоя случай ще смятам документацията като част от функционалната част на задачата.

    Давай напред с проекта :)

Трябва да сте влезли в системата, за да може да отговаряте на теми.