├── .editorconfig ├── .gitignore ├── .gitmodules ├── .prettierrc ├── .gitattributes ├── .prettierignore ├── Makefile ├── .scripts ├── build.sh └── build.ps1 ├── examples ├── multiline_string.🤡 └── hello.🤡 ├── LICENSE └── README.md /.editorconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: build 2 | 3 | build: 4 | @echo "Hello 🤡" -------------------------------------------------------------------------------- /.scripts/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 🤡 3 | cd .. && make 4 | -------------------------------------------------------------------------------- /.scripts/build.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | # 🤡 3 | cd .. 4 | make 5 | -------------------------------------------------------------------------------- /examples/multiline_string.🤡: -------------------------------------------------------------------------------- 1 | mod main 2 | 3 | const std = import("std") 4 | 5 | use string.{trim_space, dedent} 6 | 7 | fn main() { 8 | const println = std.log.println 9 | const $html = std.fmt.$f 10 | 11 | const name = "Mom" 12 | const html_content = html` 13 |
14 |

Hi {name}

15 |
16 | `.dedent().trim_space() 17 | println(html_content) 18 | } 19 | 20 | /* 21 | ./multiline_string 22 |
23 |

Hi {name}

24 |
25 | */ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Gizmo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /examples/hello.🤡: -------------------------------------------------------------------------------- 1 | mod main 2 | 3 | const ( 4 | std = import("std") 5 | println = std.log.println 6 | $f = std.fmt.$f 7 | ) 8 | 9 | const ( 10 | default_country = "Bolivia" 11 | default_age: u32 = 20 12 | default_gender = Gender.pizza 13 | ) 14 | 15 | pub enum Gender { 16 | male = "male" 17 | female = "female" 18 | pizza = "pizza" 19 | banana = "banana" 20 | other = "other" 21 | } 22 | 23 | class Human { 24 | pub name: string 25 | age: u32 26 | pun mut gender: Gender 27 | married: bool = false 28 | pub mut country: string 29 | 30 | Human( "🤡" better than "🔥" —— [Node.js v18.16.0](https://nodejs.org/download/release/v18.16.0/) 19 | 20 | ## 💡 Examples 21 | 22 |
23 | 24 | ```🤡 25 | // hello.🤡 26 | mod main 27 | 28 | const ( 29 | std = import("std") 30 | println = std.log.println 31 | $f = std.fmt.$f 32 | ) 33 | 34 | const ( 35 | default_country = "Bolivia" 36 | default_age: u32 = 20 37 | default_gender = Gender.pizza 38 | ) 39 | 40 | pub enum Gender { 41 | male = "male" 42 | female = "female" 43 | pizza = "pizza" 44 | banana = "banana" 45 | other = "other" 46 | } 47 | 48 | class Human { 49 | pub name: string 50 | age: u32 51 | pun mut gender: Gender 52 | married: bool = false 53 | pub mut country: string 54 | 55 | Human( 103 |

Hi {name}

104 | 105 | `.dedent().trim_space() 106 | println(html_content) 107 | } 108 | 109 | /* 110 | ./multiline_string 111 |
112 |

Hi {name}

113 |
114 | */ 115 | ``` 116 | 117 |
118 | 119 | ## 🤝 Credits 120 | 121 | MattoLanguage draws inspiration from the syntax of the following programming languages: 122 | 123 | - [Go](https://golang.org/) 124 | - [Zig](https://ziglang.org/) 125 | - [🦀](https://www.rust-lang.org/ "I don't want to be prosecuted") 126 | 127 | ## ❤️ Sponsors 128 | 129 | [![Sponsors](https://afdian-connect.deno.dev/sponsor.svg)](https://afdian.net/a/gizmo) 130 | 131 | ## ⚠️ Contact 132 | 133 | Feel free to reach out to us on Twitter: [@gizmo_ds](https://www.youtube.com/watch?v=dQw4w9WgXcQ) 134 | --------------------------------------------------------------------------------