{"id":16311081,"url":"https://github.com/ef55/tfl","last_synced_at":"2025-06-19T06:33:56.049Z","repository":{"id":209617612,"uuid":"392842534","full_name":"Ef55/tfl","owner":"Ef55","description":"A Terrible Front-end Library","archived":false,"fork":false,"pushed_at":"2021-09-16T20:56:31.000Z","size":448,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T09:50:01.914Z","etag":null,"topics":["dfa","lexer","lexing","nfa","parser","parsing"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ef55.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-04T22:47:59.000Z","updated_at":"2021-09-12T18:10:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"fdfd0ce9-5722-4ff2-be32-790ca082fc7f","html_url":"https://github.com/Ef55/tfl","commit_stats":null,"previous_names":["ef55/tfl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ef55/tfl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ef55%2Ftfl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ef55%2Ftfl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ef55%2Ftfl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ef55%2Ftfl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ef55","download_url":"https://codeload.github.com/Ef55/tfl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ef55%2Ftfl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260702365,"owners_count":23049231,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dfa","lexer","lexing","nfa","parser","parsing"],"created_at":"2024-10-10T21:43:33.325Z","updated_at":"2025-06-19T06:33:51.039Z","avatar_url":"https://github.com/Ef55.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TFL - A Terrible Front-end Library\n\nTFL is a a lexing and parsing library which was meant to be as concise and simple as possible (thus terribly inefficient, hence the name), but outgrew its scope.\n\n## Features\n\n- Lexers using extended regexes for tokens specification:\n    - Derivative-based lexer, which is simple, but terribly slow;\n    - DFA-based lexer, which is fast, but needs some time to be built;\n- Parser with a parser-combinator-like interface:\n    -  \"Brute force\" recursive descent parser, which is terrible but accepts almost all Context-free grammars;\n- Extras:\n    - DFA/NFA creation interface;\n    - Regex/DFA/NFA graph generation.\n\n## Documentation\n\nThe documentation can be generated using\n`cmake --target Doc`\n(requires [doxygen](https://www.doxygen.nl/index.html)).\n\n## Examples\n\nThis repository contains some examples showing how to use TFL:\n- *Calculator*: a simple 1 file, \u003c 150 lines example;\n- *Graphs*: shows how dot graphs can be outputed and then made into pictures;\n- *Json*: a \"real world\" use case;\n- *Kaleidoscope*: is a more complex example taken from the [llvm tutorial](https://llvm.org/docs/tutorial/).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fef55%2Ftfl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fef55%2Ftfl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fef55%2Ftfl/lists"}