{"id":17446941,"url":"https://github.com/arxeiss/go-expression-calculator","last_synced_at":"2025-03-28T03:41:11.899Z","repository":{"id":46722354,"uuid":"330233907","full_name":"arxeiss/go-expression-calculator","owner":"arxeiss","description":"Custom implementation of calculator handling operator precedence and parentheses.","archived":false,"fork":false,"pushed_at":"2021-10-21T15:29:05.000Z","size":252,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-02T04:44:32.540Z","etag":null,"topics":["ast","calculator","lexer","parser","recursive-descent","recursive-descent-parser","shunting-yard","shuntingyard"],"latest_commit_sha":null,"homepage":"https://dev.to/arxeiss/lexer-expression-calculator-3j9p","language":"Go","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/arxeiss.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}},"created_at":"2021-01-16T18:53:45.000Z","updated_at":"2024-05-27T15:56:45.000Z","dependencies_parsed_at":"2022-08-30T01:31:24.300Z","dependency_job_id":null,"html_url":"https://github.com/arxeiss/go-expression-calculator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arxeiss%2Fgo-expression-calculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arxeiss%2Fgo-expression-calculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arxeiss%2Fgo-expression-calculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arxeiss%2Fgo-expression-calculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arxeiss","download_url":"https://codeload.github.com/arxeiss/go-expression-calculator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245966926,"owners_count":20701759,"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":["ast","calculator","lexer","parser","recursive-descent","recursive-descent-parser","shunting-yard","shuntingyard"],"created_at":"2024-10-17T19:04:45.270Z","updated_at":"2025-03-28T03:41:11.871Z","avatar_url":"https://github.com/arxeiss.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Expression calculator in Go\n\nCustom implementation of calculator which accept string as an input. And handles parentheses and operator precedence properly.\n\nThe idea to try implement custom expression calculator raised from the puzzle of [Day 18 of Advent of Code 2020](https://github.com/arxeiss/advent-of-code-2020/tree/master/day18).\n\n## How to run\n\n1. Clone repository\n1. Build calculator with `make build`\n1. Execute calculator with `./calculator` and show help with `./calculator --help`\n\n## Blog posts\n\nAbout each part I'm also writing article on Dev.to and my personal blog.\n\n1. Lexer - [Dev.To](https://dev.to/arxeiss/lexer-expression-calculator-3j9p) 🇬🇧  \u0026 [kutac.cz](https://www.kutac.cz/pocitace-a-internety/lexer-1-dil-vlastni-kalkulacky-s-vyrazy) 🇨🇿\n1. Shunting yard parser - [Dev.To](https://dev.to/arxeiss/shunting-yard-parser-expression-calculator-cik) 🇬🇧  \u0026 [kutac.cz](https://www.kutac.cz/pocitace-a-internety/shunting-yard-algoritmus-2-dil-vlastni-kalkulacky) 🇨🇿\n1. AST \u0026 Evaluator - [Dev.To](https://dev.to/arxeiss/ast-evaluator-expression-calculator-1cdg) 🇬🇧  \u0026 [kutac.cz](https://www.kutac.cz/pocitace-a-internety/evaluator-ast-3-dil-vlastni-kalkulacky) 🇨🇿\n1. Recursive descent parser - [Dev.To](https://dev.to/arxeiss/recursive-descent-parser-5581) 🇬🇧  \u0026 [kutac.cz](https://www.kutac.cz/pocitace-a-internety/recursive-descent-4-dil-vlastni-kalkulacky) 🇨🇿\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farxeiss%2Fgo-expression-calculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farxeiss%2Fgo-expression-calculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farxeiss%2Fgo-expression-calculator/lists"}