{"id":17948654,"url":"https://github.com/dog429436/math_parser","last_synced_at":"2025-10-30T15:38:02.369Z","repository":{"id":259593084,"uuid":"874769735","full_name":"Dog429436/math_parser","owner":"Dog429436","description":"Math Parser","archived":false,"fork":false,"pushed_at":"2024-11-15T00:14:37.000Z","size":109,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T04:17:11.942Z","etag":null,"topics":["c","math-parser","shunting-yard-algorithm"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dog429436.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-18T12:34:51.000Z","updated_at":"2024-11-15T00:14:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"1ccd8a9e-063c-440c-846e-2dc71f5e7a59","html_url":"https://github.com/Dog429436/math_parser","commit_stats":null,"previous_names":["dog429436/math_parser"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dog429436%2Fmath_parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dog429436%2Fmath_parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dog429436%2Fmath_parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dog429436%2Fmath_parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dog429436","download_url":"https://codeload.github.com/Dog429436/math_parser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247026324,"owners_count":20871362,"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":["c","math-parser","shunting-yard-algorithm"],"created_at":"2024-10-29T09:08:09.057Z","updated_at":"2025-10-30T15:38:02.266Z","avatar_url":"https://github.com/Dog429436.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Math Parser\n\n## Overview\n\nHey, I created a Math Parser using C. The program is designed to take user input, tokenize it, and evaluate the mathematical expression, then return the output back to the user. The implementation uses the Shunting Yard algorithm for infix to postfix conversion as a way to evaluate the result. It can handle basic arithmetic operations such as addition, subtraction, multiplication, and division, as well as parentheses behavior.\n\nHope you’d like it!\n\n## Features\n- Tokenizes mathematical expressions\n- Supports basic operations: addition, subtraction, multiplication, division as well as parentheses behavior\n- Converts infix expressions to postfix notation\n- Evaluates postfix expressions\n- Dynamic memory management for arrays\n\n## Prerequisites\n- GCC compiler, Visual Studio, or Visual Studio Code\n\n## Installation\nTo build and run the Math Parser, follow these steps:\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/YourUsername/math_parser.git\n   \n2. Navigate to the project directory:\n   ```bash\n   cd math_parser\n\nFor GCC Compiler\n\n3. Compile the source code:\n   ```bash\n   gcc -g main.c tokenization.c stack.c numeric_operations.c -o math_parser\n\n4. Run the program::\n   ```bash\n   ./math_parser\n\nFor Visual Studio/Code\n\n3. Load the math_parser.c source and header files in your IDE.\n\n4. Build and run the program using your IDE's functionality.\n\n## Usage\nOnce the Math Parser is running, you can input mathematical expressions directly. You can choose between two modes: Default and Verbose. \n## Defualt mode\nin this mode the output will be shown without any process indicators\n## Example:\nEnter equation: 3 + 5 * (2 - 8)  \nResult: -27\n## Verbose mode (-v)\n   this mode will show the parser processing stages such as:  \n   - Input status  \n   - Memory allocation status  \n   - Tokenization status  \n   - Postfix notation  \n\n## Example (Linux/GCC):\n./math_parser -v\n\n## Output:\nEnter equation: 3 + 5 * (2 - 8)  \nInput reading succeeded  \nEquation entered: 3 + 5 * (2 - 8)  \nMemory allocation succeeded for string  \nMemory allocation succeeded for tokens  \nSuccessfully tokenized the string  \nPostfix notation: 3528-*+  \nResult: -27  \n\n## What's Next\nIn the future, I'd like to add these features:\n\n- **File Scanning**: Enable the parser to read mathematical expressions from a file. This will allow users to input expressions via files instead of using the command line.\n\n- **Print Options**: Implement functionality to format and print results in a more user-friendly way. This could include options for displaying expressions with proper notation or saving outputs to a file.\n\n- **Error Handling Enhancements**: Improve error detection and user feedback for invalid inputs, helping users understand what went wrong and how to fix it.\n\n- **Extended Functionality**: Consider adding support for more advanced mathematical functions, such as algebraic operations.\n\n- **Graphical User Interface (GUI)**: Find a solution to providing a more user-friendly graphical interface for interaction, rather than relying solely on the command line or IDE.\n\n\n\n\n  \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdog429436%2Fmath_parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdog429436%2Fmath_parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdog429436%2Fmath_parser/lists"}