У меня есть выражения в lua, который содержит стандартные метатабельные операции .__add,.__sub,.__mul, (+,-,*)
Например, a+b*xyz-cde
Я пытаюсь извлечь все свободные переменные из таблицы. Для этого выражения таблица будет содержать {a,b,xyz,cde}
. Прямо сейчас я пытаюсь сделать это с помощью строковых операций, таких как разбиение, замена et c. Кажется, это работает, но я чувствую это как уродливый способ. Это становится немного сложнее, так как в выражениях могут быть вложенность и скобки. Например, выражение (a+b)-c*xyz*(a+(b+c))
должно возвращать таблицу {a,b,c,xyz}
. Может ли быть простой способ извлечь свободные переменные в выражениях? Я даже ищу простой способ с библиотекой строк.