{"id":36985257,"url":"https://github.com/xspin/regexparser","last_synced_at":"2026-01-13T23:01:15.043Z","repository":{"id":328463662,"uuid":"1109079824","full_name":"xspin/RegexParser","owner":"xspin","description":"Regular Expression Parser and Visualizer","archived":false,"fork":false,"pushed_at":"2025-12-25T12:01:32.000Z","size":343,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T19:45:15.404Z","etag":null,"topics":["lexer","regular-expression","visualization"],"latest_commit_sha":null,"homepage":"","language":"C++","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/xspin.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-03T10:03:31.000Z","updated_at":"2025-12-25T12:01:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xspin/RegexParser","commit_stats":null,"previous_names":["xspin/regexparser"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/xspin/RegexParser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xspin%2FRegexParser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xspin%2FRegexParser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xspin%2FRegexParser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xspin%2FRegexParser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xspin","download_url":"https://codeload.github.com/xspin/RegexParser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xspin%2FRegexParser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28405148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["lexer","regular-expression","visualization"],"created_at":"2026-01-13T23:01:14.299Z","updated_at":"2026-01-13T23:01:15.036Z","avatar_url":"https://github.com/xspin.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RegexParser\n\nA terminal tool to parse and visualize regular expression.\n\nSupported Syntax: [Regular Expression Syntax](RegularExpression.md)\n\n## Build and Install\n\n```sh\n# build\nmake\n\n# install\nmake install\n```\n\n## Run unittest\n\n```sh\nmake test\n```\n\n\n## Basic Usages\n\n```sh\n# Parse a specified regular expression\nbuild/regexparser '^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$'\n\n# Read from stdin\necho \"a+b*[0-9]+\" | build/regexparser\n\n# Print ansi-colored result\nbuild/regexparser -c '[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\\.?'\n\n# Generate and parse a random regular expression\nbuild/regexparser -g 20\n\n# Output the syntax tree\nbuild/regexparser -g 20 -f tree\n\n# Run as HTTP server\nbuild/regexparser -p 8080\n\n# Show more usage details\nbuild/regexparser -h\n```\n\n## An Example of Text Graph Output\n\n```\nRegular Expression: ^(\\-|\\+)?\\d+(\\.\\d+)?$\n                                                                            \n              ╭Group #1╴╮                                                   \n              ╷   ┌─┐   ╷                   ╭╴╴╴╴╴Group #2╴╴╴╴╴╮            \n              ╷ ┌─┤-├─┐ ╷                   ╷                  ╷            \n   ╔══^══╗    ╷ │ └─┘ │ ╷      ╔═\\d══╗      ╷ ┌─┐    ╔═\\d══╗   ╷    ╔═$═╗   \n●──╣Start╠──┬─┼─┤ ┌─┐ ├─┼─┬──┬─╣Digit╠─┬──┬─┼─┤.├──┬─╣Digit╠─┬─┼─┬──╣End╠──◎\n   ╚═════╝  │ ╷ └─┤+├─┘ ╷ │  │ ╚═════╝ │  │ ╷ └─┘  │ ╚═════╝ │ ╷ │  ╚═══╝   \n            │ ╷   └─┘   ╷ │  └──↻1→∞───┘  │ ╷      └──↻1→∞───┘ ╷ │          \n            │ ╷         ╷ │               │ ╰╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╯ │          \n            │ ╰╴╴╴╴╴╴╴╴╴╯ │               └─────────↺0→1─────────┘          \n            └────↺0→1─────┘  \n```\n\n\n## DFA States and Graph\n\n```sh\n# DFA states table and graph output\nbuild/regexparser -fd '(a[ab]c|b[bc]c|c[ac]c)'\n```\n\n```\nRegular Expression: (a[ab]c|b[bc]c|c[ac]c)\n\n========== DFA Start ==========\n      Tokens: a b c\n    \u003eState 0: 1 2 3\n     State 1: 4 4 -\n     State 2: - 4 4\n     State 3: 4 - 4\n     State 4: - - 8\n    *State 8: - - -\nAccept States: 8\n==========  DFA End  ==========\n                   a                        \n                  ┌\u003e─────┐                  \n                  │      ↓                  \n  ┏━━━━━┓c   ╭────┴╮c   ╭┴────╮c   ╔═════╗  \n →┃  0  ┃───\u003e│  3  │───\u003e│  4  │───\u003e║  8  ║  \n  ┗━━━━┬┛    ╰─────╯    ╰┬────╯    ╚═════╝  \n       │                 ↑                  \n      b│                 │                  \n   ┌──\u003c┤                 │                  \n   │   │a                │                  \n   │   └\u003e─────┐          │                  \n   │          │    b     │                  \n   │          │   ┌\u003e─────┤                  \n   │          │   │a     │                  \n   │          │   ├\u003e─────┤                  \n   │    c     │   │      │                  \n   │   ┌\u003e─────┼───┼──────┤                  \n   │   │b     │   │      │                  \n   │   ├\u003e─────┼───┼──────┘                  \n   ↓   │      ↓   │                         \n  ╭┴───┴╮    ╭┴───┴╮                        \n  │  2  │    │  1  │                        \n  ╰─────╯    ╰─────╯             \n```\n\n## Examples of SVG and HTML Format Output\n\n[svg example](examples/example.svg)\n\n![svg](examples/example.svg)\n\n[html example](examples/example.html)\n\n\u003ciframe height=\"100%\" width=\"100%\" src=\"examples/example.html\"\u003e\u003c/iframe\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxspin%2Fregexparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxspin%2Fregexparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxspin%2Fregexparser/lists"}