{"id":19977300,"url":"https://github.com/phartenfeller/plsql-parser","last_synced_at":"2025-05-04T03:30:45.631Z","repository":{"id":40394059,"uuid":"236059562","full_name":"phartenfeller/plsql-parser","owner":"phartenfeller","description":"A oracle PL/SQL parser written in js","archived":false,"fork":false,"pushed_at":"2023-01-08T17:25:22.000Z","size":924,"stargazers_count":9,"open_issues_count":9,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-02T15:13:54.197Z","etag":null,"topics":["js","oracle","parser","plsql"],"latest_commit_sha":null,"homepage":"https://phartenfeller.github.io/plsql-parser/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phartenfeller.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}},"created_at":"2020-01-24T18:29:25.000Z","updated_at":"2024-05-21T08:05:38.000Z","dependencies_parsed_at":"2023-02-08T07:01:11.641Z","dependency_job_id":null,"html_url":"https://github.com/phartenfeller/plsql-parser","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":"phartenfeller/node-js-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phartenfeller%2Fplsql-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phartenfeller%2Fplsql-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phartenfeller%2Fplsql-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phartenfeller%2Fplsql-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phartenfeller","download_url":"https://codeload.github.com/phartenfeller/plsql-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252283557,"owners_count":21723495,"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":["js","oracle","parser","plsql"],"created_at":"2024-11-13T03:27:39.270Z","updated_at":"2025-05-04T03:30:44.860Z","avatar_url":"https://github.com/phartenfeller.png","language":"TypeScript","readme":"# PL/SQL-Parser\n\n![Test](https://github.com/phartenfeller/plsql-parser/workflows/Test/badge.svg)\n\n**This parser is a work in progress. Valid code may be marked as invalid.**\n\nMy current goal is to make the lexing and parsing work for most projects. Better error messages are for now a problem of the future.\n\nYou are welcome to contribute, I am happy with every help :)\n## About\n\nLexer, parser and interpreter for Oracle PL/SQL.\n\nThis parser is build for basic code introspection and coding assistance. This means that it won't act 1:1 the same as the DB internal parser. My goal is more to not have false negative than false positives. For example parsing values is way more forgiving resulting in no errors from this parser where the DB parser would.\n\nThe interpreter gives an object with insights about the code. For example which packages are included, their functions / procedures + their parameters. All with position info. I am using this to build a VS Code Plugin with a Language Server.\n\n## Usage\n\n```typescript\nimport parse, { getInterpretation } from 'oracle-plsql-parser';\n\nconst code = `begin ... end;`;\n\n// 2nd parameters logs errors to console\nconst {errors, cst} = parse(text, true);\n\n// interpreter returns object with infos about the code\nconst interpreted = plSqlInterpreter.visit(cst);\nconsole.log(interpreted);\n```\n\n## Installation\n\n```sh\nnpm i oracle-plsql-parser@latest\n```\n\n## Diagram\n\n**Currently broken and not updated**\n\nhttps://phartenfeller.github.io/plsql-parser/\n\n## References\n\n- BNF Index from university of Geneva : http://cui.unige.ch/isi/bnf/PLSQL21/BNFindex.html\n- Tokenizer and Parser Framework: https://github.com/Chevrotain/chevrotain\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphartenfeller%2Fplsql-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphartenfeller%2Fplsql-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphartenfeller%2Fplsql-parser/lists"}