{"id":25171667,"url":"https://github.com/basemax/dotwhitespace","last_synced_at":"2025-05-05T21:09:27.192Z","repository":{"id":43878199,"uuid":"280586716","full_name":"BaseMax/DotWhitespace","owner":"BaseMax","description":"DotWhitespace is an esoteric programming language using Python.","archived":false,"fork":false,"pushed_at":"2022-02-14T17:37:48.000Z","size":749,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-04T21:45:36.938Z","etag":null,"topics":["dotwhitespace","interpreter","interpreter-basic","interpreter-python","programming-language","programming-language-concepts","programming-language-design","programming-language-development","programming-language-theory","python","whitespace","whitespace-interpreter","whitespace-language","whitespace-normalization"],"latest_commit_sha":null,"homepage":"","language":"Python","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/BaseMax.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}},"created_at":"2020-07-18T05:11:33.000Z","updated_at":"2023-08-06T23:36:36.000Z","dependencies_parsed_at":"2022-09-12T00:51:20.313Z","dependency_job_id":null,"html_url":"https://github.com/BaseMax/DotWhitespace","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/BaseMax%2FDotWhitespace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FDotWhitespace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FDotWhitespace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FDotWhitespace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BaseMax","download_url":"https://codeload.github.com/BaseMax/DotWhitespace/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252577003,"owners_count":21770721,"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":["dotwhitespace","interpreter","interpreter-basic","interpreter-python","programming-language","programming-language-concepts","programming-language-design","programming-language-development","programming-language-theory","python","whitespace","whitespace-interpreter","whitespace-language","whitespace-normalization"],"created_at":"2025-02-09T09:21:31.776Z","updated_at":"2025-05-05T21:09:27.140Z","avatar_url":"https://github.com/BaseMax.png","language":"Python","readme":"# Dot-Whitespace Interpreter\n\n## DotWhitespace Programming Language\n\nDotWhitespace is an esoteric programming language created by Max Base. It was released on July 17, 2020. Its name refers to the characters of white space and dots. Unlike most programming languages, which ignore most white space characters or give less meaning. Only distances, tabs, dots and lines are meaningful.\n\n\u003cp align=\"center\"\u003e\n\u003cimg width=\"300px\" src=\"https://user-images.githubusercontent.com/2658040/91645430-37a8ff80-ea5a-11ea-964c-09f218c2a373.png\"\u003e\n\u003c/p\u003e\n\n### Hello, World in `.Whitespace`\n\n#### From a file\n\n`$ python DotWhitespace.py examples/hello-world.ds`\n\n```\n.. .        .     .            .            .               ..                       .               .                  .            .    .\n```\n\n#### From standard input\n\n```sh\n$ cat examples/hello-world.ds | python DotWhitespace.py -\n```\n\nOutput: `hello world`\n\n### Sample Program\n\n```\n. . .  .   .\t. .  .   .\n. . .  .   .\t\t. .  .   .\n. . .  .   .\t  .   .    . .\n.. \t. .  .   .\n.. . .  .   .\n..   . .\n..   . . .\t   . .\n..   . . \t   . \n```\n\nIt is actually equivalent to:\n\n```\n.S.S.SS.SSS.T.S.SS.SSS.     ; DEFINE abc ('STR', 'abc')\n.S.S.SS.SSS.TT.S.SS.SSS.    ; DEFINE abc ('VAR', 'abc')\n.S.S.SS.SSS.TSS.SSS.SSSS.S. ; DEFINE abc ('NUM', 1230)\n..ST.S.SS.SSS.              ; PRINT ('VAR', 'abc')\n..S.S.SS.SSS.               ; PRINT ('STR', 'abc')\n..SSS.S.                    ; PRINT ('NUM', 10)\n..SSS.S.S.TSSS.S.           ; PRINT ('NUM', 120) \n..SSS.S.STSSS.S             ; PRINT ('NUM', 120)\n```\n\nOutput:\n\n```\n1230\nabc\n10\n120\n120\n```\n\n## Whitespace\n\nThis language was inspired by [Whitespace](https://en.wikipedia.org/wiki/Whitespace_(programming_language)).\n\nHowever DotWhitespace is not a whitespace interpreter, and the grammar is different in many ways.\n\nIt also has dots, For example:\n\n## DotWhitespace Commands\n\nThere are only three types of commands in this language.\n\n`S` means whitespace character.\n\n- Print to console (String or Number directly or from a variable)\n```\n..S\n```\n\n- Read input from console (not yet developed); __I need help from others.__\n```\n...S\n```\n\n- Variable definition\n```\n.S\n```\n\n### Operators\n\n`T` means tab character. (`\\t`)\n\n| Syntax  | Operator |\n| ------- | -------- |\n|   T     | +        |\n| TT      |  -       |\n| TTT     | *        |\n| TTTT    | /        |\n| TTTTT   | ^        |\n| TTTTTT  |  %       |\n\nNote: There are no parentheses, So the priority of the operators will not support all mathematics expression.\n\n### Debug\n\nYou can pass `-debug` argument, then you will see debug information in **stout**.\n\ne.g: `$ python DotWhitespace.py examples/hello-world.ds -debug`\nor `$ python DotWhitespace.py -debug examples/hello-world.ds`\n\nOutput:\n\n```\n('PRINT', ('STR', 'hello world'))\nhello world\n```\n\n### Examples\n\n- Input: `. . .  .   .\\t. .  .   .\\n`\n\nDEFINE abcd ('STR', 'abcd')\n\n- Input: `. . .  .   .\\t\\t. .  .   .\\n`\n\nDEFINE abcd ('VAR', 'abcd')\n\n- Input: `. . .  .   .\\t  .   .    . .\\n`\n\nDEFINE abcd ('NUM', 1230)\n\n- Input: `.. \\t. .  .   .\\n`\n\nPRINT ('VAR', 'abcd')\n\n- Input: `.. . .  .   .\\n`\n\nPRINT ('STR', 'abcd')\n\n- Input: `..   . .\\n`\n\nPRINT ('NUM', 10)\n\n- Input: `..   . . .\\t   . .\\n`\n\nPRINT ('NUM', 120)\n\n- Input: `..   . . \\t   . \\n`\n\nPRINT ('NUM', 120)\n\n### Characters supported as string:\n\n`(space)abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^\u0026*()_-=+?\u003c\u003e[]{}`\n\nNote: You will not be able to print any characters other than the above.\n\n### TODO\n\n- Implement **float number**.\n- Display Tree of program.\n- Implement Read Input. (`input()` in python or `scanf()` in c, one for read string and another for number)\n*What about reading a line or float number!*\n\n- Implement loop (`for`)\n- Implement if, and else (`if(...){} else{}`)\n- Implement logical operators (`\u003e \u003c \u003e= \u003c= ==`)\n\n### ChangeLog\n\n- [x] 2020-07-23: Get filename from argument and reads from file.\n- [x] 2020-07-23: Adding `whitespace` (\\s) as supported character. (e.g: we want to display `Hello World`, Not `HelloWorld`)\n\n### Similar Projects\n\n- https://github.com/BaseMax/MiniCalculatorInterpreter\n- https://github.com/BaseMax/CFG2CNF\n\n\n### Acknowledgments\n\nThe grammar idea for this language was first taken from Whitespace, but these have nothing to do with each other and are different in many ways.\n\nThanks to Prof. Jeremy Douglass for mentions this to me. [#1](https://github.com/BaseMax/DotWhitespace/issues/1)\n\n---------\n\n# Max Base\n\nMy nickname is Max, Programming language developer, Full-stack programmer. I love computer scientists, researchers, and compilers. ([Max Base](https://maxbase.org/))\n\n## Asrez Team\n\nA team includes some programmer, developer, designer, researcher(s) especially Max Base.\n\n[Asrez Team](https://www.asrez.com/)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Fdotwhitespace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasemax%2Fdotwhitespace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Fdotwhitespace/lists"}