{"id":20003589,"url":"https://github.com/jungerboyo/spa-simple-zig","last_synced_at":"2025-08-30T17:07:16.098Z","repository":{"id":229466409,"uuid":"769609495","full_name":"JungerBoyo/SPA-simple-zig","owner":"JungerBoyo","description":"Tokenization and abstract syntax tree creation of purely hypothetical language `SIMPLE`.","archived":false,"fork":false,"pushed_at":"2024-06-09T11:15:21.000Z","size":1305,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-12T13:26:31.921Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Zig","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/JungerBoyo.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}},"created_at":"2024-03-09T15:03:41.000Z","updated_at":"2024-06-09T11:15:25.000Z","dependencies_parsed_at":"2024-04-22T20:29:26.960Z","dependency_job_id":"0a0ccc3f-5ee1-4c4c-9e9e-0a6bb339e4cf","html_url":"https://github.com/JungerBoyo/SPA-simple-zig","commit_stats":null,"previous_names":["jungerboyo/spa-simple-zig"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JungerBoyo%2FSPA-simple-zig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JungerBoyo%2FSPA-simple-zig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JungerBoyo%2FSPA-simple-zig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JungerBoyo%2FSPA-simple-zig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JungerBoyo","download_url":"https://codeload.github.com/JungerBoyo/SPA-simple-zig/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241442742,"owners_count":19963662,"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":[],"created_at":"2024-11-13T05:26:22.097Z","updated_at":"2025-03-02T00:25:52.377Z","avatar_url":"https://github.com/JungerBoyo.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SPA simple zig\nProgram implements tokenization and abstract syntax tree creation of purely hypothetical language `SIMPLE`. \nLanguage is defined by following CSG (concrete syntax grammar) rules:\n```\nprogram : procedure+\nprocedure : ‘procedure’ proc_name ‘{‘ stmtLst ‘}’\nstmtLst : stmt+\nstmt : call | while | if | assign\ncall : ‘call’ proc_name ‘;’\nwhile : ‘while’ var_name ‘{‘ stmtLst ‘}’\nif : ‘if’ var_name ‘then’ ‘{‘ stmtLst ‘}’ ‘else’ ‘{‘ stmtLst ‘}’\nassign : var_name ‘=’ expr ‘;’\nexpr : expr ‘+’ term | expr ‘-’ term | term\nterm : term ‘*’ factor | factor\nfactor : var_name | const_value | ‘(’ expr ‘)’\nvar_name : NAME\nproc_name : NAME\nconst_value : INTEGER\n```\nAnd in turn following ASG (abstract syntax grammar) rules:\n\n```\nprogram : procedure+\nprocedure : stmtLst\nstmtLst : stmt+\nstmt : assign | call | while | if\nassign : variable expr\nexpr : plus | minus | times | ref\nplus : expr expr\nminus : expr expr\ntimes : expr expr\nref : variable | constant\nwhile: variable stmtLst\nif : variable stmtLst stmtLst\n```\n\n## Additional info\n\n### Tokens\n```\nLETTER : A-Z | a-z -- capital or small letter\nDIGIT : 0-9\nNAME : LETTER (LETTER | DIGIT)* -- procedure names and variables are strings of letters, and\ndigits, starting with a letter\nINTEGER : DIGIT+ -- constants are sequences of digits\n```\n### Attributes\n```\nprocedure.procName, call.procName, variable.varName : NAME\nconstant.value : INTEGER\nstmt.stmt# : INTEGER\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjungerboyo%2Fspa-simple-zig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjungerboyo%2Fspa-simple-zig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjungerboyo%2Fspa-simple-zig/lists"}