библиотека текстового интерфейса lua (т.е. написание пользовательской оболочки на lua) - PullRequest
2 голосов
/ 17 февраля 2012

В частности, что-то, что автоматизирует рутинную работу по принципу Perl: Term :: Shell

В противном случае, есть ли какие-нибудь хорошие библиотеки для анализа, которые подойдут для такого проекта?

Мне нужно обернуть предоставленный OEM инструмент, который, хотя и пригоден для использования, совершенно барокко, во что-то более дружелюбное для человеческого мозга.

Спасибо всем, кто ответит!

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Ну, в зависимости от вашей реализации lua, но функция os.execute () позволяет вызывать функцию оболочки в вашей системе (хотя я не знаю, будет ли она работать, поскольку вы работаете на встроенном устройстве), но пользовательскийОболочка легко пишется на Lua с нуля.

Просто получите пользовательский ввод, используя функции io.read () / io.write () , тогда вы можетепарсим пользовательский commande, используя такую ​​функцию:

function string.split(self,c)
local l , c , b = {} , c or " " , self
while b:find(c) do
    table.insert(l,b:sub(0,({b:find(c)})[1]-1))
    b = b:sub(({b:find(c)})[1]+(#c))
end
if not(b == "") then table.insert(l,b) end
    return l
end

Имя команды дается первым токеном таблицы, и все аргументы следующие, касающиеся table функций и unpack () анализ будет выполняться очень быстро.

0 голосов
/ 17 февраля 2012

Если ваш OEM-производитель имеет интерфейс C, попробуйте вместо него написать двоичный модуль .Таким образом, вы сможете использовать консоль lua по умолчанию:

$: lua

Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> oem = require 'baroque-oem'
> oem.foo('bar')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...