mirror of
https://github.com/MeexReay/sustlang.git
synced 2025-06-24 10:33:01 +03:00
more commandsgit add *git add *
This commit is contained in:
parent
85fbe7419b
commit
fb9e7d0fae
@ -46,6 +46,8 @@ WRITE text cout
|
||||
| `TO_BOOL` | `source_var`, `result_var` | Скопировать строку `source_var` (тип переменной: `string`/`integer`) в `result_var`, переводя в `bool` |
|
||||
| `TO_FLOAT` | `source_var`, `result_var` | Скопировать строку `source_var` в `result_var`, переводя в `float` |
|
||||
| `GET_SYMBOL` | `str_var`, `index_var`, `result_var` | Скопировать символ из строки `str_var` по индексу `index_var` и записать в `result_var` |
|
||||
| `GET_ITEM` | `list_var`, `index_var`, `result_var` | Скопировать предмет из списка `str_var` по индексу `index_var` и записать в `result_var` |
|
||||
| `GET_VALUE` | `map_var`, `key_var`, `result_var` | Скопировать предмет из мапы `map_var` по ключу `key_var` и записать в `result_var` |
|
||||
| `ADD_INT` | `int_var1`, `int_var2` | Прибавить к числу `int_var1` значение `int_var2` |
|
||||
| `ADD_FLOAT` | `float_var1`, `float_var2` | Прибавить к числу `float_var1` значение `float_var2` |
|
||||
| `ADD_STR` | `str_var`, `value_var` | Прибавить к строке `str_var` значение `value_var` (может быть типа `string/char/list[char]`) |
|
||||
|
1014
src/lib.rs
1014
src/lib.rs
File diff suppressed because it is too large
Load Diff
@ -18,5 +18,10 @@ fn main() {
|
||||
running_script
|
||||
.set_standard_vars(args, Box::new(stdout()), Box::new(stdin()))
|
||||
.unwrap();
|
||||
running_script.run().unwrap();
|
||||
match running_script.run() {
|
||||
Ok(_) => {}
|
||||
Err((e, c)) => {
|
||||
println!("error ({:?}) command: {:?}", e, c);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
73
test.sus
73
test.sus
@ -1,19 +1,72 @@
|
||||
INIT_VAR char space
|
||||
SET_VAR space 32
|
||||
|
||||
INIT_VAR char new_line
|
||||
SET_VAR new_line 10
|
||||
|
||||
FUNC null println text string # println function
|
||||
TEMP_VAR char br 10 # line break var
|
||||
ADD_STR text br # add line break to text var
|
||||
ADD_STR text new_line # add line break to text var
|
||||
WRITE text cout # write text var to console
|
||||
FUNC_END # end println function
|
||||
|
||||
FUNC null hello_world index integer
|
||||
|
||||
# write hello world
|
||||
|
||||
TEMP_VAR string text Hello World!
|
||||
USE_FUNC println null text
|
||||
|
||||
|
||||
|
||||
|
||||
# write args length
|
||||
|
||||
INIT_VAR integer args_size
|
||||
LIST_SIZE args args_size
|
||||
|
||||
TEMP_VAR integer add -1
|
||||
ADD_INT args_size add
|
||||
|
||||
INIT_VAR string args_size_str
|
||||
TO_STRING args_size args_size_str
|
||||
|
||||
INIT_VAR string args_size_str_formatted # create var
|
||||
SET_VAR args_size_str_formatted # init var with value
|
||||
|
||||
INIT_VAR string prefix
|
||||
SET_VAR prefix Args length:
|
||||
|
||||
ADD_STR args_size_str_formatted prefix
|
||||
ADD_STR args_size_str_formatted space
|
||||
ADD_STR args_size_str_formatted args_size_str
|
||||
|
||||
USE_FUNC println null args_size_str_formatted
|
||||
DROP_VAR prefix
|
||||
|
||||
DROP_VAR args_size_str_formatted
|
||||
DROP_VAR args_size_str
|
||||
DROP_VAR args_size
|
||||
|
||||
|
||||
FUNC null print_arg_finally
|
||||
USE_FUNC println null now_arg
|
||||
FUNC_END
|
||||
|
||||
INIT_VAR string text
|
||||
SET_VAR text Hello World!
|
||||
FUNC null print_arg index integer
|
||||
INIT_VAR bool is_first
|
||||
SET_VAR is_first false
|
||||
TEMP_VAR int first 0
|
||||
MORE index first is_first
|
||||
GET_ITEM args index now_arg
|
||||
IF is_first print_arg_finally
|
||||
FUNC_END
|
||||
|
||||
TEMP_VAR integer start_index 0 # temp vars can stack
|
||||
TEMP_VAR integer end_index 9
|
||||
TEMP_VAR string text Args:
|
||||
USE_FUNC println null text
|
||||
|
||||
FOR hello_world start_index end_index
|
||||
|
||||
DROP_VAR text
|
||||
INIT_VAR string now_arg
|
||||
INIT_VAR integer end_index
|
||||
LIST_SIZE args end_index
|
||||
TEMP_VAR integer add -1
|
||||
ADD_INT end_index add
|
||||
TEMP_VAR integer start_index 0
|
||||
FOR print_arg start_index end_index
|
||||
|
Loading…
x
Reference in New Issue
Block a user