wip
This commit is contained in:
parent
d0ad8a0f20
commit
eff09931ad
90
src/parser/example.shrimp
Normal file
90
src/parser/example.shrimp
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
# this is a comment
|
||||||
|
|
||||||
|
# unbound symbols are treated as strings
|
||||||
|
echo hello
|
||||||
|
---
|
||||||
|
hello
|
||||||
|
|
||||||
|
# strings use single quotes
|
||||||
|
echo 'hello'
|
||||||
|
---
|
||||||
|
hello
|
||||||
|
|
||||||
|
# arguments to commands and functions can be named. There is NEVER a space between the name, the equals sign, and the expression
|
||||||
|
tail file.txt lines=2 follow=true
|
||||||
|
|
||||||
|
# named args can be in any order, and can be mixed with positional args
|
||||||
|
tail lines=2 file.txt follow=true
|
||||||
|
|
||||||
|
# symbols can be assigned to variables
|
||||||
|
string = 'world'
|
||||||
|
also-string = cool # as long as cool isn't bound
|
||||||
|
boolean = true
|
||||||
|
number = 34.5
|
||||||
|
|
||||||
|
echo also-string
|
||||||
|
---
|
||||||
|
cool
|
||||||
|
|
||||||
|
# symbols can contain lowercase letters, dashes, numbers, and emojis
|
||||||
|
greeting-message1 = 'hello'
|
||||||
|
😀 = 'happy'
|
||||||
|
mr-🌵-health = 34
|
||||||
|
|
||||||
|
# paths can be assigned to variables, paths are identifiers that contain any of these
|
||||||
|
# characters: `/ . ~`
|
||||||
|
my-path = ~/documents/file.txt
|
||||||
|
a-file = file.txt
|
||||||
|
|
||||||
|
# binary operations are supported, there is ALWAYS a space between the operator and the operands
|
||||||
|
1 + 2
|
||||||
|
---
|
||||||
|
3
|
||||||
|
|
||||||
|
# symbols can be assigned to functions. The body of the function comes after a colon `:`
|
||||||
|
add = fn x y: x + y
|
||||||
|
add 1 2
|
||||||
|
---
|
||||||
|
3
|
||||||
|
|
||||||
|
# Functions can have multiple lines, they are terminated with `end`
|
||||||
|
sub = fn x y:
|
||||||
|
x - y
|
||||||
|
end
|
||||||
|
|
||||||
|
sub 5 1
|
||||||
|
---
|
||||||
|
4
|
||||||
|
|
||||||
|
# You can pipe the output of one function to another using `|`. The output of the
|
||||||
|
# left function is passed as the first argument to the right function.
|
||||||
|
'hello' | echo
|
||||||
|
---
|
||||||
|
hello
|
||||||
|
|
||||||
|
add 4 2 | sub 1
|
||||||
|
---
|
||||||
|
5
|
||||||
|
|
||||||
|
# You can use parentheses to group expressions
|
||||||
|
(1 + 2) * 3
|
||||||
|
---
|
||||||
|
9
|
||||||
|
|
||||||
|
# Parentheses can also be used to group function arguments
|
||||||
|
add 1 (2 + 1)
|
||||||
|
---
|
||||||
|
4
|
||||||
|
|
||||||
|
# Parentheses can also be used to call Functions
|
||||||
|
add 1 (sub 5 2)
|
||||||
|
---
|
||||||
|
4
|
||||||
|
|
||||||
|
|
||||||
|
# HOLD UP
|
||||||
|
|
||||||
|
- how do we handle arrays?
|
||||||
|
- how do we handle hashes?
|
||||||
|
- conditionals
|
||||||
|
- loops
|
||||||
Loading…
Reference in New Issue
Block a user