lama_byterun/tools/README.md
Kakadu 5356537fd0 Add README for go-to-definition tool
Signed-off-by: Kakadu <Kakadu@pm.me>
2020-12-24 01:47:21 +03:00

1.6 KiB
Raw Blame History

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

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