{"id":34139275,"url":"https://github.com/jmeaster30/vore","last_synced_at":"2026-04-05T11:31:41.952Z","repository":{"id":65949904,"uuid":"355342320","full_name":"jmeaster30/vore","owner":"jmeaster30","description":"VerbOse Regular Expressions - Regular Expression Engine with Verbose English-like Syntax","archived":false,"fork":false,"pushed_at":"2025-05-20T05:26:58.000Z","size":2232,"stargazers_count":1,"open_issues_count":21,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-20T06:29:08.700Z","etag":null,"topics":["programming-language","regex","regular-expression"],"latest_commit_sha":null,"homepage":"","language":"Go","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/jmeaster30.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-04-06T22:10:13.000Z","updated_at":"2025-05-20T05:27:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"66d79214-678f-4665-91bd-909a19a4d239","html_url":"https://github.com/jmeaster30/vore","commit_stats":{"total_commits":182,"total_committers":2,"mean_commits":91.0,"dds":0.01098901098901095,"last_synced_commit":"0de1c8a1e21d9083638a7d3babc5136190e8611a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jmeaster30/vore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmeaster30%2Fvore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmeaster30%2Fvore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmeaster30%2Fvore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmeaster30%2Fvore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmeaster30","download_url":"https://codeload.github.com/jmeaster30/vore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmeaster30%2Fvore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31434624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T08:13:15.228Z","status":"ssl_error","status_checked_at":"2026-04-05T08:13:11.839Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["programming-language","regex","regular-expression"],"created_at":"2025-12-15T02:16:19.627Z","updated_at":"2026-04-05T11:31:41.942Z","avatar_url":"https://github.com/jmeaster30.png","language":"Go","readme":"# VORE - **V**erb**O**se **R**egular **E**xpressions\r\n\r\nVORE is just a regular expression engine but with more readable syntax and some\r\nextra features that I felt would be useful from processing text. With this project,\r\nI wanted to learn about language design and implementation with a strong enough\r\nconstraint that would keep me from expanding the scope to an unmanageable level.\r\n\r\n[![Go](https://github.com/jmeaster30/vore/actions/workflows/go.yml/badge.svg?branch=main)](https://github.com/jmeaster30/vore/actions/workflows/go.yml)\r\n[![Npm](https://github.com/jmeaster30/vore/actions/workflows/npm.yml/badge.svg)](https://github.com/jmeaster30/vore/actions/workflows/npm.yml)\r\n[![codecov](https://codecov.io/gh/jmeaster30/vore/branch/main/graph/badge.svg?token=8NFDH5ALID)](https://codecov.io/gh/jmeaster30/vore)\r\n\r\n[![codecov](https://codecov.io/gh/jmeaster30/vore/branch/main/graphs/tree.svg?token=8NFDH5ALID)](https://codecov.io/gh/jmeaster30/vore)\r\n\r\n## Documentation\r\n\r\n### [Docs Home](docs/DocumentationHome.md)\r\n\r\n### [Getting Started](docs/GettingStarted.md)\r\n\r\n### [Examples](docs/examples/)\r\n\r\n### [Regex Comparison](docs/language/RegexComparison.md)\r\n\r\n## Project Structure\r\n\r\n### root\r\n\r\nThe root of this repository is the CLI app which is all in the main.go file.\r\nIt just adds a command line interface over `libvore`.\r\n\r\n### libvore\r\n\r\nThe core library see the following READMEs for reference:\r\n\r\n- [/libvore](/libvore/README.md)\r\n- [/libvore/algo](/libvore/algo/README.md)\r\n- [/libvore/ast](/libvore/ast/README.md)\r\n- [/libvore/bytecode](/libvore/bytecode/README.md)\r\n- [/libvore/ds](/libvore/ds/README.md)\r\n- [/libvore/engine](/libvore/engine/README.md)\r\n- [/libvore/files](/libvore/files/README.md)\r\n- [/libvore/testutils](/libvore/testutils/README.md)\r\n\r\n### libvorejs\r\n\r\nThe Javascript wrapper for `libvore` it compiles the Go code into WASM and uses\r\nwebpack and npm to package everything together.\r\n\r\n### libvore-syntax-highlighter\r\n\r\nThis is a really basic syntax highlighter extension for VSCode so you can look\r\nat nice colors while writing out Vore code.\r\n\r\n## About VORE\r\n\r\nThis language is mostly a result of difficulties that I have had with regular\r\nexpressions and I also took into account some things I have heard others have\r\ndifficulty with. Some of the difficulties I have experienced with regular expressions\r\nare how its difficult to read the expressions and how difficult it is to remember\r\nthe syntax when writing them. So, when coming up with the syntax for VORE I\r\ntried to make it feel like you can type out what you want like you are saying\r\nthe rules and you'll have the proper regular expression. I took some syntax\r\nstyle inspiration from SQL as you will probably see.\r\n\r\nAnother thing I wanted from this language is to fully encompass original regular\r\nexpressions to the point where I would be able to write a transpiler from VORE\r\nto regex and back. However, there are some features and semantics that I am\r\nallowing that would make transpiling any arbitrary VORE code into a valid regular\r\nexpression difficult if not impossible. I don't know if I will actually write\r\nthe transpiler but if I think it would be a fun quick project I probably will.\r\n\r\nHere are some examples of the language...\r\n\r\n\u003eThis example replaces all instances\r\n\u003e of: \"test - error\" or \"test - fail\"\r\n\u003e with: \"test - success\"\r\n\u003e\r\n\u003e```replace all \"test - \" = prefix \"error\" or \"fail\" with prefix \"success\"```\r\n\r\nIn the above example you can see the functionality of replacing text but it also\r\nis an example of using variables in regular expressions. Original regular expressions\r\nhad the ability to use numeric references and named capture groups but I feel this\r\nsyntax is significantly easier.\r\n\r\n\u003eVore find statement:\r\n\u003e\r\n\u003e```find all line start (at least 0 any) = myLine line end```\r\n\u003e\r\n\u003eEquivalent regular expression\r\n\u003e\r\n\u003e```/^(?\u003cmyLine\u003e.*)$/g```\r\n\r\nYou can also use the variables to find that sequence again in the match.\r\nThis next example matches the string \"aabb\"\r\n\r\n\u003eVore example:\r\n\u003e\r\n\u003e```find all \"a\" = varA varA \"b\" = varB varB```\r\n\u003e\r\n\u003eEquivalent regular expression (using numeric references)\r\n\u003e\r\n\u003e```/(a)\\1(b)\\2/g```\r\n\r\nWhile regular expressions are shorter in length, you don't need to understand the\r\nmeaning of these mysterious symbols to be able to read what the query is meant\r\nto do.\r\n\r\nWhen coming up with the syntax for this language I basically translated every symbol\r\nthat you can have in regular expressions and combined some that I felt were represented\r\nby the other constructs.\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmeaster30%2Fvore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmeaster30%2Fvore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmeaster30%2Fvore/lists"}