lama_byterun/tools/README.md
Kakadu af0c21a06f README spelling
Signed-off-by: Kakadu <Kakadu@pm.me>
2020-12-31 11:31:55 +03:00

41 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

##### Утилиты работы с программами на LaMa
Утилита `tools/tool.exe` принимает следующие параметры командной строки
* `-pos L,C` для указания позиции в исходном тексте, по которой необходимо найди идентификатор и его место определения (resolve)
* `-use` опциональный параметр, который кроме resolve производит поиск использований этого идентификатора
Пример входного файла:
```
1 public fun foldl (f, acc, l) {
2 -- ^-- (1,19)
3 case l of
4 {} -> acc
5 | x : xs -> foldl (f, f (acc, x), xs)
6 -- (5,22)--^ ^-- (5,25)
7 esac
8 }
9
10 public fun filter (f, l) {
11 case l of
12 {} -> {}
13 | h : t -> if f (h) then h : filter (f, t) else filter (f, t) fi
14 esac
15 }
```
Пример запуска: `LAMA=./runtime tools/tool.exe tools/demo1.lama -pos 5,22 -use`
В выводе утилита находит определение символа `f` на позиции (1,19) и два его использования на позициях (5,25) и (5,22)
```
found definition for `f` at (1,19)
Total 2 usages found
(5,25) (5,22)
```
###### Поддерживаемые синтаксические конструкции
Утилита работает для определний функций, их аргументов и локальных определений переменных.