lama_byterun/tools
Kakadu af0c21a06f README spelling
Signed-off-by: Kakadu <Kakadu@pm.me>
2020-12-31 11:31:55 +03:00
..
.gitignore Find usages works 2020-12-18 16:43:39 +03:00
demo1.lama Add README for go-to-definition tool 2020-12-24 01:47:21 +03:00
Makefile Add README for go-to-definition tool 2020-12-24 01:47:21 +03:00
README.md README spelling 2020-12-31 11:31:55 +03:00
tool.ml Add README for go-to-definition tool 2020-12-24 01:47:21 +03:00

Утилиты работы с программами на 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)
Поддерживаемые синтаксические конструкции

Утилита работает для определний функций, их аргументов и локальных определений переменных.