{"id":19799573,"url":"https://github.com/dan-niles/rpal-interpreter","last_synced_at":"2026-06-11T19:31:07.939Z","repository":{"id":191981039,"uuid":"656697484","full_name":"dan-niles/rpal-interpreter","owner":"dan-niles","description":"A lexical analyser and parser for the RPAL language, built for CS3513: Programming Languages","archived":false,"fork":false,"pushed_at":"2023-08-06T14:34:44.000Z","size":2107,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-22T19:03:30.385Z","etag":null,"topics":["lexical-analyzer","parser","programming-languages","rpal"],"latest_commit_sha":null,"homepage":"","language":"C++","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/dan-niles.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}},"created_at":"2023-06-21T13:01:09.000Z","updated_at":"2025-06-05T18:30:02.000Z","dependencies_parsed_at":"2023-09-01T21:34:46.961Z","dependency_job_id":null,"html_url":"https://github.com/dan-niles/rpal-interpreter","commit_stats":null,"previous_names":["dan-niles/rpal-interpreter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dan-niles/rpal-interpreter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-niles%2Frpal-interpreter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-niles%2Frpal-interpreter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-niles%2Frpal-interpreter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-niles%2Frpal-interpreter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dan-niles","download_url":"https://codeload.github.com/dan-niles/rpal-interpreter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-niles%2Frpal-interpreter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34215253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"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":["lexical-analyzer","parser","programming-languages","rpal"],"created_at":"2024-11-12T07:35:11.012Z","updated_at":"2026-06-11T19:31:07.917Z","avatar_url":"https://github.com/dan-niles.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RPAL Interpreter\nThis repository contains a lexical analyser and parser for the RPAL language, built for CS3513: Programming Languages.\n\n### Problem Statement\n\nThe project requirement was to implement a lexical analyzer and a parser for the\nRPAL language. The output of the parser should be the Abstract Syntax Tree (AST) for the\ngiven input program. Then an algorithm must be implemented to convert the Abstract Syntax\nTree (AST) into Standardize Tree (ST) and the CSE machine should be implemented. The\nprogram should be able to read an input file that contains an RPAL program. The output of\nthe program should match the output of “rpal.exe“ for the relevant program.\n\n### Program Execution Instructions\n\nThe following sequence of commands can be used in the root of the project directory\nto compile the program and execute rpal programs:\n```\n\u003e make\n\u003e ./rpal20 file_name\n```\nTo generate the Abstract Syntax Tree:\n```\n\u003e ./rpal20 -ast file_name\n```\nTo generate the Standardized Tree:\n```\n\u003e ./rpal20 -st file_name\n```\n\n### Structure of the Project\n\nThis project was coded entirely in C++. It consists of mainly 5 files. They are,\n1. main.cpp\n2. parser.h\n3. tree.h\n4. token.h\n5. environment.h\n   \nMore information about the purpose of each file and the function prototypes along\nwith their uses can be found [here](/docs/Group%2046%20-%20PL%20Project%20Report.pdf).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-niles%2Frpal-interpreter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan-niles%2Frpal-interpreter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-niles%2Frpal-interpreter/lists"}