{"id":16842865,"url":"https://github.com/teverett/kpascal","last_synced_at":"2025-08-23T16:08:30.292Z","repository":{"id":37959095,"uuid":"53293784","full_name":"teverett/kPascal","owner":"teverett","description":"A Pascal interpreter","archived":false,"fork":false,"pushed_at":"2025-02-21T12:07:07.000Z","size":639,"stargazers_count":4,"open_issues_count":5,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-28T06:25:16.405Z","etag":null,"topics":["java","pascal","pascal-interpreter"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teverett.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-03-07T03:44:23.000Z","updated_at":"2025-02-16T18:58:10.000Z","dependencies_parsed_at":"2024-10-28T12:25:37.235Z","dependency_job_id":"b8cba721-2cf6-46b4-bbbe-206e22838812","html_url":"https://github.com/teverett/kPascal","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/teverett/kPascal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2FkPascal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2FkPascal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2FkPascal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2FkPascal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teverett","download_url":"https://codeload.github.com/teverett/kPascal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2FkPascal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271755433,"owners_count":24815406,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["java","pascal","pascal-interpreter"],"created_at":"2024-10-13T12:48:49.344Z","updated_at":"2025-08-23T16:08:30.263Z","avatar_url":"https://github.com/teverett.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI](https://github.com/teverett/kPascal/workflows/CI/badge.svg)\n[![DepShield Badge](https://depshield.sonatype.org/badges/teverett/kPascal/depshield.svg)](https://depshield.github.io)\n\nkPascal\n========\n\nA Pascal Interpreter written in Java.  kPascal is intended to be used as either a command-line Java interpreter, or as an embedded Pascal engine inside J2EE applications.\n\n\nMaven Coordinates\n-------------------\n\n```\n\u003cgroupId\u003ecom.khubla.kpascal\u003c/groupId\u003e\n\u003cartifactId\u003ekpascal\u003c/artifactId\u003e\n\u003cversion\u003e1.1.0\u003c/version\u003e\n\u003cpackaging\u003ejar\u003c/packaging\u003e\n```\n\nLicense\n---------\n\nkPascal is distributed until the GPL v3. For more information please see the [GPL](http://www.gnu.org/licenses/gpl.txt).\n\n\nThe grammar\n---------\n\nkPascal uses [Antlr](http://www.antlr.org/).  The Pascal grammar is [here](https://github.com/antlr/grammars-v4/blob/master/pascal/pascal.g4)\n\n\nUsing kPascal in code\n---------\n\nUsing a file:\n\n````\nFileInputStream fileInputStream = new FileInputStream(\"myprogram.pas\");\nInterpreter interpreter = new Interpreter();\ninterpreter.run(fileInputStream);\n````\n\nUsing a string:\n\n````\nString myProgram = \"program HelloWorld; begin writeln('hello'); end.\"\nByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(myProgram.getBytes());\nInterpreter interpreter = new Interpreter();\ninterpreter.run(byteArrayInputStream);\n````\n\nCustom input and output streams\n---------\n\nkPascal uses `System.in` and `System.out` as the console by default. However, it is possible to provide your own input and output IO streams.\n\n````\npublic void runPascalProgram(InputStream pascalInputStream, InputStream consoleIn, PrintStream consoleOut){\n   Interpreter interpreter = new Interpreter(consoleIn, consoleOut);\n   interpreter.run(programInputStream);\n}\n````\n\nUsing kPascal from the command line\n---------\n\n````\njava -jar kpascal.jar --file=myprogram.pas\n\n````","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteverett%2Fkpascal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteverett%2Fkpascal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteverett%2Fkpascal/lists"}