{"id":17870538,"url":"https://github.com/stlgolfer/soup","last_synced_at":"2025-03-21T14:31:03.799Z","repository":{"id":104107493,"uuid":"84672509","full_name":"stlgolfer/Soup","owner":"stlgolfer","description":"A language interpreted through java that is geared towards formula solving","archived":false,"fork":false,"pushed_at":"2017-09-12T03:05:45.000Z","size":14864,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-18T02:11:16.562Z","etag":null,"topics":["coding-languages","formula","hacktoberfest","java","java-coding-language","language","loop","math","paramaters","programming-language","simple","soup"],"latest_commit_sha":null,"homepage":"https://amtstl.xyz/soup","language":"Java","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/stlgolfer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","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":"2017-03-11T18:50:47.000Z","updated_at":"2020-10-09T00:04:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"64207ad2-ada4-4e44-b0d4-0d9fb4e2acdf","html_url":"https://github.com/stlgolfer/Soup","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlgolfer%2FSoup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlgolfer%2FSoup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlgolfer%2FSoup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlgolfer%2FSoup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stlgolfer","download_url":"https://codeload.github.com/stlgolfer/Soup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244815118,"owners_count":20514893,"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":["coding-languages","formula","hacktoberfest","java","java-coding-language","language","loop","math","paramaters","programming-language","simple","soup"],"created_at":"2024-10-28T10:16:15.897Z","updated_at":"2025-03-21T14:31:03.774Z","avatar_url":"https://github.com/stlgolfer.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Soup\n*A language interpreted through Java to make computing easier and more efficient*\n\n# Basic Functions (Poly-Argumented Functions)\nSoup can do these basic math functions along with other functions. Functions will continuously calculate the arguments left to right.\n\nLegend\n\n`i{f,e}`\n\nwhere \n\nToken | Description\n---- | ---\ni | the indentifier\nf | first paramater\ne | second paramater\n\nExample\n\n`+{4,5,5}` -\u003e `14`\n`%{12,2,2}` -\u003e `3` (12/2 -\u003e 6, 6/2 -\u003e 3)\n\nKey: italics denotes that the function only takes one argument\n\nToken | Operation\n----- | -----\n`+` | Adding\n`_` | Subtracting\n`*` | Multiply\n`%` | Divide\n`^` | Raise to the Power Of (base,exponent)\n`#` | Logarithm (exponent,base)\n`P` | Print (e = 1 print, e = 0 for print line)\n`{pipe}` | Absolute Value of single number\n`\u0026` | *Square Root*\n`?` | *Rounds the number*\n`~` | Stores a variable at a specific index `~{3,0} // number 3 at index 0`\n`/` | Comments (jumps index to the end of the line; doesn't work in loops, so don't put them in loops)\n` ` | Only a single space between functions is permitted (it's proper to use a period, though)\n\n# Random Number Generation (Static-argumented)\nSoup can return a random integer to your specifications\n\n## Legend\n\n`R{0,4}`\n\nReturns a random float between 0 and 4\n\n# Trig Functions\n_Please note that trig functions return in RADIANS so be aware and plan accordingly_\n\nKey\n\n`${f,e}`\n\nwhere\n\n`f` Case | `e` Function\n------ | -------\n`s` | Sine of number\n`c` | Cosine of number\n`t` | Tangent of number\n`arcs` | Arc Sine\n`arcc` | Arc Cosine\n`arct` | Arc Tangent\n\n# Area Functions\nSoup can also calculate areas for you with ease\n\nKey\n\n`A{f,e}`\n\nwhere\n\n`f` case | `e` function\n------ | -------\n`s` | Finds the area of a square `A{s,4,4}` -\u003e `16`\n`tri` | Finds the ara of a triangle `A{tri,4,4}` -\u003e `8`\n`tra` | Trapezoid `A{tra, 4,4}`\n\n# Variable Storage\nVariable storage is a critical piece to Soup. The function acts like an extension of a regular function\n\nToken | Operation | Example\n---- | ---- | -----\n`:` | Stores the last operation's output in the specific index (excluding print) | `+{5,5}:{0}`\n`~` | Stoes the first argument in the second argument's index | `~(3,0) // this will put 3 in index 0`\n\n# Variable Retrieval\n## Explicit Recalling\nVariables can be called from within functions or just printed to the screen\n\nIf you want to just recall a variable:\n\n`V{0}`\n\nwhere 0 is the index that you want to pull from.\n\n## Interpolated Recalling\nVariables can be recalled from within functions for interpolation and manipulation\n\nFor example:\n\n```\n~{3,0} // stores '3' in index 0\n+{v0,3} // v0 will substitute the recalled variable at index 0 and add it with 3 to get the answer. note that the interpolated 'v' is lowercase\n```\n\n# Getting User Input\nIn Soup, you can accept the user's input and store it like this:\n\n` I{What's the number?,0} `\n\n\nThe first paramater is the string and the second paramater is the index where the input will be stored\n\n## Wildcards\nUser's inputs can be indentified as wildcards\n\nToken | Result\n--- | ---\n{grave} | sets variable in position 100 to 1\n`.` | sets variable in position 101 to 1\n\n### Applied meaning\nExample\n```\nI{type '`' for hydrogen,1}. ={v100,1};(~{-1,5}.V{5}!.P{calculating helium then...,1}.^{2,2}:{2}.*{-13.6,v2}:{2}.^{1,2}:{3}.%{v2,v3})\nP{done,1}\n```\n\nThe point? You can compare user input with things other than numbers! Menu systems! Options!\n\n# Miscellaneous Characters\nThese are characters that have some special functions\n\nToken | Operation | Notes\n------- | -------- | ----\n`.` | End of function | it's like a semicolon, it's not necessary but it's there for making code easier to read\n\n# Looping\nSoup can do for loops, while loops, and while not loops. To break a loop, use `X`\n\n## For Loops\nFor loops will increment the first argument until (about) the second argument is equal to it. Now, like a regular for loop, you can access the current index in which the loop is on. The index is stored in variable position 1000. Remember, to recall: `V{1000}` for interpolation (example): `[{0,5}].+{v1000,4}` **however,** you can't set this variable, only access it \n\n### Example\n`[{0,3}].P{hello,1}` -\u003e This will print the \"hello\" ~3 times\n\n## While Loop\nWhile loops will run while argument 1 and 2 are equal. Please note that variables can be accepted as numbers.\n\n### Examples\n`W{1,1}.P{hello,1}` -\u003e this will print \"hello\" infinately times\n\n`W{v0,0}.+{v0,1}:{0}` -\u003e this loop will only run once\n\n## While Not Loop\nWhile loops will run while argument 1 and 2 are not equal. Please note that variables can be accepted as numbers.\n\n### Examples\n`N{1,0}.P{hello,1}` -\u003e this will print \"hello\" infinately times\n\n`N{v0,1}.+{v0,1}:{0}` -\u003e this loop will only run once\n\n# If Statements (Static-Arguments)\nQuite possibly the most useful function in Soup. Please read careful as this breaks some rules when it comes to syntax\n\n## The Basic If Statement\n`={0,0}` -\u003e will print \"True\" if the first and second arguments match. Prints \"False\" on the opposite\n\n## \u003e If Statement\n`\u003e{4,3}` -\u003e will print \"True\" if the first argument is greater than the second argument. Prints \"False on the opposite\n\n## \u003c If Statement\n`\u003c{4,3}` -\u003e will print \"True\" if the first argument is less than the second argument. Prints \"False on the opposite\n\n## Soup If Do\nThis is where things get complicated as the syntax will change. To explain: whenever an if statement function is executed, it caches the result. This means that we can manipulate it by extending the function like the store function extenstion!\n\n### Primitive Syntax \n`;(!)` -\u003e If the cached statement is true, execute everthing before the `!` divider. If the cached statement is false, exectue everthing after the `!` divider.\n\n### Extension Syntax\n`={3,3};(P{this is true,1}!P{this is false,1})`\n\nTreat the first and second arguments as interpolated functions. Also note that this function uses parentheses instead of curly brackets.\n\n# HTML Generator\nSoup can generate a nice little webpage displaying your code outputs in the current directory called \"SoupNoodle.html\" Get it? Noodle soup? Soup's the name of the language? Yeah?\n\n`H{title,description}`\n\n# Functions\nFunctions of Soup code can be stored and recalled. Note that functions must be declared before they are run.\n\n## Example\n```\nS(P{this function was stored and recalled,1}!0).\nF{0}\n```\n\n# Installation\nGo to Install/ and downlod the correspoding file for your Operating System. Make sure to install the file to a global location (for example, for windows, put it in the System32 file)\n\n# Running Soup\nHow to make and run a Soup file\n1) Make a new file with the .soup extension\n2) Write code in that file\n3) Open up a new Windows command line window in the same directory\n4) Type `soup {filename} {flags if you have them}` or `soup \"{some soup code}\"⁰`\n*⁰ passing soup functions this way is only designed as a quick test; some functions might not work properly this way*\n\n## Flags\nFlag table\n\nFlag | Function\n-- | --\n`-i` | prints the current index of the main loop (excludes loop functions)\n`\"\"` | pass soup code from within the quotations to execute some Soup code\n\n# Important Things to Remember\n- Sometimes you can't always do everything in one function, so break it up and store the results\n- Soup will accept spaces in the params and/or arguments. But Please no extra commas\n- Remember that variables can be interpolated with other functions, so use that to your advantage\n- Don't use caps unless you are using a function\n- Don't put soup function indentifiers inside of functions! Example `[{0,3}].P{Hello,1}` -\u003e **THIS WILL CRASH**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstlgolfer%2Fsoup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstlgolfer%2Fsoup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstlgolfer%2Fsoup/lists"}