mirror of
https://github.com/MeexReay/sustlang.git
synced 2025-06-24 18:43:01 +03:00
refactor
This commit is contained in:
parent
3c2cc0dd22
commit
e02528b2f1
@ -40,7 +40,13 @@ WRITE text cout
|
|||||||
|
|
||||||
| Команда | Параметры | Описание |
|
| Команда | Параметры | Описание |
|
||||||
|--------------------------|------------|-------------|
|
|--------------------------|------------|-------------|
|
||||||
| `TO_STRING` | `source_var`, `target_var` | Скопировать значение переменной с `source_var` в `target_var`, переводя в строку |
|
| `TO_STRING` | `source_var`, `result_var` | Скопировать значение переменной с `source_var` в `result_var`, переводя в `string` |
|
||||||
|
| `TO_BYTES` | `str_var`, `result_var` | Скопировать строку `str_var` в `result_var`, переводя в `list[char]` |
|
||||||
|
| `TO_INTEGER` | `source_var`, `result_var` | Скопировать строку `source_var` (тип переменной: `string`/`char`) в `result_var`, переводя в `integer` |
|
||||||
|
| `TO_CHAR` | `source_var`, `result_var` | Скопировать строку `source_var` (тип переменной: `string`/`integer`) в `result_var`, переводя в `char` |
|
||||||
|
| `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` |
|
||||||
| `ADD_INT` | `int_var1`, `int_var2` | Прибавить к числу `int_var1` значение `int_var2` |
|
| `ADD_INT` | `int_var1`, `int_var2` | Прибавить к числу `int_var1` значение `int_var2` |
|
||||||
| `ADD_FLOAT` | `float_var1`, `float_var2` | Прибавить к числу `float_var1` значение `float_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]`) |
|
| `ADD_STR` | `str_var`, `value_var` | Прибавить к строке `str_var` значение `value_var` (может быть типа `string/char/list[char]`) |
|
||||||
@ -79,6 +85,7 @@ WRITE text cout
|
|||||||
| `LESS` | `var`, `other_var`, `result_var` | Узнать, меньше ли в `var` чем в `other_var` записать результат в `result_var` |
|
| `LESS` | `var`, `other_var`, `result_var` | Узнать, меньше ли в `var` чем в `other_var` записать результат в `result_var` |
|
||||||
| `AND` | `var`, `other_var`, `result_var` | Если `var` и `other_var` равны `true`, то результат `true`, иначе `false`, записать результат в `result_var` |
|
| `AND` | `var`, `other_var`, `result_var` | Если `var` и `other_var` равны `true`, то результат `true`, иначе `false`, записать результат в `result_var` |
|
||||||
| `OR` | `var`, `other_var`, `result_var` | Если `var` или `other_var` равен `true`, то результат `true`, иначе `false`, записать результат в `result_var` |
|
| `OR` | `var`, `other_var`, `result_var` | Если `var` или `other_var` равен `true`, то результат `true`, иначе `false`, записать результат в `result_var` |
|
||||||
|
| `NOT` | `var`, `result_var` | Если `var` равен `true`, то результат `false`, иначе `true`, записать результат в `result_var` |
|
||||||
| `IF` | `bool_var`, `func` | Если `var` равен `true` то вызвать функцию `func` |
|
| `IF` | `bool_var`, `func` | Если `var` равен `true` то вызвать функцию `func` |
|
||||||
| `HAS_STR` | `string_var`, `substring`, `result_var` | Узнать, имеет ли строка `var` в себе подстроку `substring` и записать результат в `result_var` |
|
| `HAS_STR` | `string_var`, `substring`, `result_var` | Узнать, имеет ли строка `var` в себе подстроку `substring` и записать результат в `result_var` |
|
||||||
| `HAS_ITEM` | `list_var`, `item_var`, `result_var` | Узнать, имеет ли список `list_var` значение `item_var` и записать результат в `result_var` |
|
| `HAS_ITEM` | `list_var`, `item_var`, `result_var` | Узнать, имеет ли список `list_var` значение `item_var` и записать результат в `result_var` |
|
||||||
|
1088
src/lib.rs
1088
src/lib.rs
File diff suppressed because it is too large
Load Diff
@ -7,8 +7,8 @@ use std::{
|
|||||||
use sustlang::{RunningScript, Script};
|
use sustlang::{RunningScript, Script};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let script = Script::parse(fs::read_to_string("test.sus").unwrap());
|
let script = Script::parse(fs::read_to_string("test.sus").unwrap()).unwrap();
|
||||||
let mut running_script = RunningScript::new(script);
|
let mut running_script = RunningScript::new(script);
|
||||||
running_script.set_standard_vars(args().collect(), Box::new(stdout()), Box::new(stdin()));
|
running_script.set_standard_vars(args().collect(), Box::new(stdout()), Box::new(stdin()));
|
||||||
running_script.run()
|
running_script.run().unwrap();
|
||||||
}
|
}
|
||||||
|
15
test.sus
15
test.sus
@ -1,4 +1,4 @@
|
|||||||
FUNC bool println text string # println command
|
FUNC null println text string # println command
|
||||||
|
|
||||||
TEMP_VAR char br 10 # line break var
|
TEMP_VAR char br 10 # line break var
|
||||||
ADD_STR text br # add line break to text var
|
ADD_STR text br # add line break to text var
|
||||||
@ -6,12 +6,15 @@ WRITE text cout # write text var to console
|
|||||||
|
|
||||||
FUNC_END # end println command
|
FUNC_END # end println command
|
||||||
|
|
||||||
|
INIT_VAR string text
|
||||||
|
SET_VAR text Hello World!
|
||||||
|
|
||||||
|
FUNC null hello_world index integer
|
||||||
|
|
||||||
INIT_VAR string text # init text var
|
USE_FUNC println null text
|
||||||
SET_VAR text Hello World! # set hello world to var
|
|
||||||
|
|
||||||
TEMP_VAR bool result 0 # init temp result var
|
FUNC_END
|
||||||
USE_FUNC println result text # use println to print text
|
|
||||||
|
|
||||||
DROP_VAR text # drop text var
|
TEMP_VAR integer start_index 0
|
||||||
|
TEMP_VAR integer end_index 9
|
||||||
|
FOR hello_world start_index end_index
|
||||||
|
Loading…
x
Reference in New Issue
Block a user