Skip to content

Commit ed44cdb

Browse files
committed
Initial commit
0 parents  commit ed44cdb

File tree

135 files changed

+83784
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+83784
-0
lines changed

Diff for: .gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.DS_Store
2+
.DS_Store?

Diff for: CREDITS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Parser heavily copied from a tutorial series by [tylerlaceby](https://www.youtube.com/@tylerlaceby)

Diff for: README.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Bolt
2+
I tried coding a programming language not once, but twice. And failed both times. Hoping this one is different!

Diff for: docs/arrays.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Arrays
2+
- Single typed (different typed is a tree)
3+
4+
```
5+
let digitsOfPi = [3, 1, 4, 1, 5]
6+
7+
// Add to end of array
8+
digitsOfPi += 9
9+
```

Diff for: docs/control.md

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# Control Statements
2+
- If statement (`if`)
3+
- While loop (`while`)
4+
- For loop (`for`)
5+
- For each loop (`foreach`)
6+
- Switch case (`switch`)
7+
8+
### If statement
9+
```
10+
let x = 5
11+
let y = 1
12+
if(x < 6) {
13+
y += 3
14+
} elseif(x < 5) {
15+
y += 8
16+
} else {
17+
y++
18+
}
19+
```
20+
21+
### While loop
22+
```
23+
let x = 7
24+
while(x % 3 != 0) {
25+
x += x
26+
}
27+
```
28+
29+
### For loop
30+
```
31+
let evens = []
32+
for(let i = 0, i < 10, i += 2) {
33+
evens += i
34+
}
35+
36+
let arr = []
37+
for(let i = 0, j = 0, i < 100, i++, j++) {
38+
if(i % 12 == 0) {
39+
i++
40+
}
41+
arr[j] *= i
42+
}
43+
```
44+
45+
### For each loop
46+
```
47+
let people = [
48+
{
49+
name: "John",
50+
age: 12
51+
},
52+
{
53+
name: "Sarah",
54+
age: 15
55+
},
56+
{
57+
name: "Evelyn",
58+
age: 85
59+
},
60+
{
61+
name: "Bill",
62+
age: 28
63+
}
64+
]
65+
let pi = [3, 1, 4, 1, 5, 9]
66+
67+
foreach(number digit : pi) {
68+
print(digit)
69+
}
70+
71+
let youngNames = []
72+
foreach(name, age : people) {
73+
if(age < 24) {
74+
youngNames += name
75+
}
76+
}
77+
```
78+
79+
### Switch case
80+
```
81+
string character = "9"
82+
switch(character) {
83+
case "3", "6", "9":
84+
print("number divisible by 3")
85+
86+
case "a":
87+
print("the letter a")
88+
89+
default:
90+
print("something else")
91+
}
92+
```

Diff for: docs/types.md

+137
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
# Types
2+
- Number (`number`)
3+
- Boolean (`bool`)
4+
- String (`string`)
5+
- Function (`func`)
6+
- Tree (`tree`)
7+
- Date (`date`)
8+
- Time (`time`)
9+
- Enum (`enum`)
10+
11+
# Examples
12+
13+
### Number
14+
```
15+
let x = 1.8
16+
let y = 3
17+
let hex = #32a852
18+
let capital = #77AAC9
19+
20+
number someNumber = -7
21+
```
22+
23+
### Boolean
24+
```
25+
let truthy = true
26+
let falsy = false
27+
28+
bool someBoolean = true
29+
```
30+
31+
### String
32+
```
33+
let str = "Hello world!"
34+
let char = "E"
35+
let multiline = "
36+
Strings are automatically multiline
37+
"
38+
39+
string someString = "Welcome"
40+
```
41+
42+
### Function
43+
```
44+
let add = (number a, number b) => {
45+
return a + b
46+
}
47+
let seperateLines = (string line1, string line2, string line3) => {
48+
return line1 + "\n" + line2 + "\n" + line3
49+
}
50+
51+
func someFunction = (let a, let b) => {
52+
if(a > b) {
53+
return a
54+
} else {
55+
return b
56+
}
57+
}
58+
```
59+
60+
### Tree
61+
```
62+
let json = {
63+
x: 5,
64+
y: true,
65+
inner: {
66+
run: "Running"
67+
}
68+
}
69+
let treeWithArray = {
70+
myStuff: [
71+
phone: "My phone",
72+
computer: "My laptop"
73+
],
74+
yourStuff: [
75+
book: "A cool story",
76+
tablet: "Your tablet",
77+
drink: "Coffee"
78+
]
79+
}
80+
81+
tree someTree = {
82+
a: 1,
83+
b: 2,
84+
c: 3,
85+
d: 4
86+
}
87+
```
88+
89+
### Date
90+
```
91+
let epoch = 1/1/1970
92+
let millennium = 1/1/2000
93+
let beforeYearZero = -10/8/512
94+
95+
date someDate = 5/22/2023
96+
```
97+
98+
### Time
99+
```
100+
let wakeUp = 6:45am
101+
let bedTime = 10:30PM
102+
103+
let exactWakeUp = 6:46:37
104+
let exactBedTime = 23:08:14
105+
106+
time someTime = 19:45:12
107+
```
108+
109+
### Enum
110+
```
111+
let Months = [
112+
January
113+
Febuary
114+
March
115+
April
116+
May
117+
June
118+
July
119+
August
120+
September
121+
October
122+
November
123+
December
124+
]
125+
let Directions = [
126+
North
127+
South
128+
East
129+
West
130+
]
131+
132+
enum SomeEnum = [
133+
Breakfast
134+
Lunch
135+
Dinner
136+
]
137+
```

Diff for: images/logo.png

15.4 KB
Loading

Diff for: images/logo.psd

50.8 KB
Binary file not shown.

Diff for: io/ast.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"kind": "Program",
3+
"body": [
4+
{
5+
"kind": "Identifier",
6+
"symbol": ""
7+
}
8+
]
9+
}

Diff for: io/script.txt

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
let x = 5 * (3 - 12) / 6
2+
let y = true | false & true
3+
let z = x
4+
5+
z += 5
6+
7+
// Always true
8+
if(x < z) {
9+
y = !y
10+
}
11+
12+
let evensum = 0
13+
number i = 0
14+
while(i < 10) {
15+
if(i % 2 == 0) {
16+
evensum += i
17+
}
18+
i += 1
19+
}

Diff for: node_modules/.package-lock.json

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: node_modules/@types/node/LICENSE

+21
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: node_modules/@types/node/README.md

+16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)