Mew (named after Pokémon) is a programming language created for programming in self-written OS kernels and popular systems
It uses PLY as lexer and parser.
Yes, it's another programming language I writing 4th time
Mew depends on 2 functions at the moment:
malloc()
free()
Mew uses target system that can be extended by adding targetname
folder in the mew_pl/
folder and putting files into it:
For example (Linux: targets/linux
) should contain files:
defs.h
- type definitonsalloc.h
- allocation functions
For any other platform, your targetname
folder should contain these files too to reach compatibility.
Run
pip install https://github.com/NDRAEY/Mew/archive/main.zip
to install latest commit from GitHub repo.
- Standard types
- Numerals (u8, u16, u32, ...)
- Float / Double
- String
- Store in variables
- Booleans
- Generics
- Generic structs
- Generic classes
- Lists
- Push
- Pop
- Insert
- Remove
- Remove by index
- Own types creation
- Structs
- Variables
- Assign
- Reassign
- Functions
- Simple
- Value-Returnable
- Return variables
- Return binary operations
- Return any value
- Lambdas
- Function overloading
- Store functions in variables
- Control flow
- if
- else
- else if
- Loops
- while
- for
- loop
- break / continue
- Arrays
- Single-type
- Use in functions
- Multi-dimensional arrays
- Indexing
- Indexing and assigning
- Slicing
- Dictionaries (Maps)
- Pointers
- Memory safety
- Auto-free
- Value move
- Force freeing
- FFI
- Minimal (Done using
extern
)
- Minimal (Done using
- Cross-platform
- Windows
- Linux (Partial)
- MacOS
- *BSD
- Other known operating systems
- SayoriOS
- SynapseOS
- KolibriOS
- SerenityOS
- ToaruOS
- Haiku
- Classes
- Public fields
- Private fields
- Operator overloading
- Association with built-in types
- No system libraries (no dependcies, like Golang)
- Module support (like
import
in Python /#include
in C)- From local files
- Global
- Builtins
- StdIO
- Input
- Streams
- Keyboard
- File
- Output
- Streams
- Screen / TTY
- Common output
- Formatted output
- File
- Input
- Operations with string
- Concatenation
- Trimming
- Splitting
- Lowercase/Uppercase/Normal conversion
- Time
- Monotonic (UNIX)
- Human-readable (hrs, mins, secs)
- Formatting to string fmt
- Math
- sin()
- cos()
- tg()
- ctg()
- log()
- exp()
- pow()
- ln()
- StdIO
- Fork this repository.
- Make your changes in separate branch
- Submit a PR (Pull Request).
- Wait for your PR to be reviewed, approved & merged by an admin/owner.
- If there are issues with your PR, please revise them in accordance to the comments made by the admins.