started work
This commit is contained in:
parent
f174ec9927
commit
9fa7ed1dcf
6 changed files with 85 additions and 52 deletions
25
sm-test-files/actual-testing/io.sm
Normal file
25
sm-test-files/actual-testing/io.sm
Normal file
|
@ -0,0 +1,25 @@
|
|||
|
||||
&& line comment test
|
||||
|
||||
¡<= /"Hello world!"\!
|
||||
|
||||
¡<= ]] inline comment example [[ /"inline cmmnts work"\!
|
||||
|
||||
``
|
||||
big ass block comment!
|
||||
ye boiiiii
|
||||
´´
|
||||
|
||||
&& declare variable out as string
|
||||
¡}}string{{ out!
|
||||
|
||||
&& take input and take it into var
|
||||
¡=> /out\!
|
||||
|
||||
&& log out
|
||||
¡<= /out\!
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -3,30 +3,30 @@
|
|||
|
||||
&& inherit via :::
|
||||
++cat:::animal (
|
||||
¡+}}float{{ meowingVolume!;
|
||||
|
||||
### /}}string{{ name\ /}}float{{ speed\ /}}float{{ meowingVolume\ | (
|
||||
&& ## calls the super
|
||||
¡##/name, speed\!;
|
||||
¡+meowingVolume < meowingVolume!;
|
||||
)
|
||||
|
||||
+#meow /\ | (
|
||||
¿??€/+meowingVolume >> 0\ | (
|
||||
¡<=/"*silence*"!;
|
||||
) ?>$/+meowingVolume >> 0\ | (
|
||||
¡<=/"mow"\!;
|
||||
) ?>$/+meowingVolume >> 2\ | (
|
||||
¡<=/"meow"\!;
|
||||
) ?>$/+meowingVolume >> 5\ | (
|
||||
¡<=/"Meow."\!;
|
||||
) ?>$/+meowingVolume >> 10\ | (
|
||||
¡<=/"Meow!!"\!;
|
||||
) ?>$/+meowingVolume >> 20\ | (
|
||||
¡<=/"MEOW!!!"\!;
|
||||
) >? | (
|
||||
!<=/"Error: weird as fuck meowing volume."\!;
|
||||
¡+}}float{{ meowingVolume!;
|
||||
|
||||
### /}}string{{ name\ /}}float{{ speed\ /}}float{{ meowingVolume\ | (
|
||||
&& ## calls the super
|
||||
¡##/name, speed\!;
|
||||
¡+meowingVolume < meowingVolume!;
|
||||
)
|
||||
|
||||
+#meow /\ | (
|
||||
¿??€/+meowingVolume >> 0\ | (
|
||||
¡<=/"*silence*"!;
|
||||
) ?>$/+meowingVolume >> 0\ | (
|
||||
¡<=/"mow"\!;
|
||||
) ?>$/+meowingVolume >> 2\ | (
|
||||
¡<=/"meow"\!;
|
||||
) ?>$/+meowingVolume >> 5\ | (
|
||||
¡<=/"Meow."\!;
|
||||
) ?>$/+meowingVolume >> 10\ | (
|
||||
¡<=/"Meow!!"\!;
|
||||
) ?>$/+meowingVolume >> 20\ | (
|
||||
¡<=/"MEOW!!!"\!;
|
||||
) >? | (
|
||||
!<=/"Error: weird as fuck meowing volume."\!;
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
&& ¡! around code means its a statement
|
||||
&& ¿? around code means its an expression
|
||||
|
||||
#mult /}}string{{str\ /{float}num\ | (
|
||||
¿string * float?
|
||||
)
|
||||
|
@ -7,16 +10,9 @@
|
|||
]]Inline comment[[
|
||||
|
||||
``
|
||||
multiline comment
|
||||
indention example (comments have to be indented as well, btw):
|
||||
first level
|
||||
second level
|
||||
third level
|
||||
fourth level
|
||||
fifth level
|
||||
sixth level
|
||||
|
||||
main function has to be a thing
|
||||
multiline comment
|
||||
indention is 3 spaces
|
||||
main function has to be a thing
|
||||
´´
|
||||
|
||||
¡}}string{{ variable!
|
||||
|
@ -36,24 +32,24 @@
|
|||
|
||||
&& if condition is true log the text
|
||||
¿??$/condition\ | (
|
||||
¡<=/"condition was true"!
|
||||
¡<=/"condition was true"!
|
||||
)?
|
||||
|
||||
&& if condition is false log the text
|
||||
¿??€/condition\ | (
|
||||
¡<=/"condition was false"!
|
||||
¡<=/"condition was false"!
|
||||
)?
|
||||
|
||||
#sub /\ | (
|
||||
&& This code prints hello world
|
||||
¿??$? | (
|
||||
!<= "Hello World"!;
|
||||
)
|
||||
&& This code prints hello world
|
||||
¿??$? | (
|
||||
!<= "Hello World"!;
|
||||
)
|
||||
)
|
||||
|
||||
#sub /\ | (
|
||||
&& This code checks if input is equal to another string
|
||||
¿??$ /=> "hello"\? | ( && Takes input and compares to string
|
||||
!<= "World!"!; Prints World!
|
||||
)?
|
||||
&& This code checks if input is equal to another string
|
||||
¿??$ /=> "hello"\? | ( && Takes input and compares to string
|
||||
!<= "World!"!; Prints World!
|
||||
)?
|
||||
)
|
||||
|
|
14
src/main.rs
14
src/main.rs
|
@ -1,18 +1,16 @@
|
|||
use std::env;
|
||||
use std::fs;
|
||||
|
||||
mod preprocessor;
|
||||
|
||||
fn main() {
|
||||
let args: Vec<String> = env::args().collect();
|
||||
let file = fs::read_to_string(&args[1]).expect("Couldnt read file:");
|
||||
println!("{:?}", multiply_strings(file, 3.5));
|
||||
|
||||
println!("{:?}", preprocessor::preprocess(file));
|
||||
}
|
||||
|
||||
fn multiply_strings(str: String, multiplier: f32) -> String {
|
||||
let mut r: String = String::from(str);
|
||||
let rest = multiplier - (multiplier as i32) as f32;
|
||||
let slice = &r.clone()[0..(r.len() as f32 * rest) as usize];
|
||||
fn parse_and_interpret(code: String) {
|
||||
|
||||
r = r.repeat(multiplier as usize);
|
||||
r += slice;
|
||||
r
|
||||
}
|
||||
|
||||
|
|
5
src/preprocessor.rs
Normal file
5
src/preprocessor.rs
Normal file
|
@ -0,0 +1,5 @@
|
|||
pub fn preprocess(raw_code: String) -> String {
|
||||
let lines = raw_code.split(' ');
|
||||
for &line in lines {
|
||||
}
|
||||
}
|
9
src/string_math.rs
Normal file
9
src/string_math.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
fn multiply_strings(str: String, multiplier: f32) -> String {
|
||||
let mut r: String = String::from(str);
|
||||
let rest = multiplier - (multiplier as i32) as f32;
|
||||
let slice = &r.clone()[0..(r.len() as f32 * rest) as usize];
|
||||
|
||||
r = r.repeat(multiplier as usize);
|
||||
r += slice;
|
||||
r
|
||||
}
|
Loading…
Reference in a new issue