{"id":13410322,"url":"https://github.com/reznikmm/anagram","last_synced_at":"2026-01-18T11:57:25.735Z","repository":{"id":104294370,"uuid":"110272313","full_name":"reznikmm/anagram","owner":"reznikmm","description":"Grammar handling and parser generation Ada library","archived":false,"fork":false,"pushed_at":"2021-02-14T08:17:48.000Z","size":306,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-07-31T20:42:14.895Z","etag":null,"topics":["ada","grammars","parsing","syntax-analysis"],"latest_commit_sha":null,"homepage":"","language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reznikmm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-11-10T17:09:39.000Z","updated_at":"2021-12-13T12:38:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"5689cb61-50cb-453b-b0f4-94627b5dd882","html_url":"https://github.com/reznikmm/anagram","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reznikmm%2Fanagram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reznikmm%2Fanagram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reznikmm%2Fanagram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reznikmm%2Fanagram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reznikmm","download_url":"https://codeload.github.com/reznikmm/anagram/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243600748,"owners_count":20317326,"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":["ada","grammars","parsing","syntax-analysis"],"created_at":"2024-07-30T20:01:06.211Z","updated_at":"2026-01-18T11:57:25.725Z","avatar_url":"https://github.com/reznikmm.png","language":"Ada","funding_links":[],"categories":["Libraries"],"sub_categories":["Parsers, Scanners, Linters, Analysers, Interpreters and Prettyprinters"],"readme":"Anagram\n=======\n\n[![Build](https://github.com/reznikmm/anagram/workflows/Build/badge.svg)](https://github.com/reznikmm/anagram/actions)\n[![Copr build status](https://copr.fedorainfracloud.org/coprs/reznik/ada/package/anagram/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/reznik/ada/)\n[![reuse compliant](https://img.shields.io/badge/reuse-compliant-green.svg)](https://reuse.software/)\n\n\u003e Grammar handling and parser generation Ada library\n\nAnagram is an Ada library to work with grammars of program languages.\nIt provides a type to represent classic grammar formalism including\nBNF, extended BNF and attributed grammars, subprograms to construct, read\nand convert them, some checks, parser generation, etc.\n\nThe Anagram makes it easy to create parsers of various kinds.\n\nMain features:\n* convert EBNF to BNF with several ways of expanding lists\n* generate tables for LALR and simple LR parsers\n* provides API to construct grammar or read it from a textual file\n* resolve conflicts in LR table using precedence and associativity\n* provides generic deterministic parser and Right Nulled GLR Parser\n* provides simple templates to represet rules of attributed grammars\n* API to construct First/Follow sets\n* partition ordered attributed grammar to find attribute evaluation order\n* write grammar in a file of yacc format\n* provides some checks:\n  + Is_Well_Formed\n  + Is_L_Attributed\n  + is ordered attributed grammar\n\n## Install\n\nRun\n```\nmake all install PREFIX=/path/to/install\n```\n\n### Dependencies\nIt depends on [Matreshka](https://forge.ada-ru.org/matreshka) library.\n\n## Usage\nAdd `with \"anagram\";` in your project file.\n\n## Maintainer\n\n[@MaximReznik](https://github.com/reznikmm).\n\n## Contribute\n\nFeel free to dive in!\n[Open an issue](https://github.com/reznikmm/anagram/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) © Maxim Reznik\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freznikmm%2Fanagram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freznikmm%2Fanagram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freznikmm%2Fanagram/lists"}