2012-02-17 2 views
2

, 뭔가를?루아 텍스트 인터페이스 라이브러리 (즉, 사용자 정의 루아에서 쉘 쓰기), 같은 프로젝트에 맞는 것입니다 좋은 파싱 라이브러리가 있다는 것을 실패 펄의 <a href="https://metacpan.org/pod/Term%3a%3aShell" rel="nofollow">Term::Shell</a></p> <p>의 라인을 따라 천역을 자동화 특히

필자는 OEM에서 제공하는 도구를 사용할 필요가 있지만 완전히 바로크적인 것으로 포장해야 할 필요성을 느낍니다.

답장을 보내 주신 모든 분들께 감사드립니다.

답변

1
에게

글쎄, 당신 루아 구현의 의존하지만, os.execute() 함수는 시스템에서 쉘 함수를 호출 할 수 있도록 (내가 모르는 : 기본 루아 콘솔을 사용할 수 있습니다 그 방법 하지만 임베디드 장치로 작업하고 있기 때문에 작동한다면), 사용자 정의 쉘은 처음부터 루아에서 쉽게 작성할 수 있습니다. 명령 이름이 주어

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 

:

그냥 io.read()/io.write() 기능을 사용하여 사용자 입력을 얻을, 당신은 이러한 기능을 사용하여 사용자 commande을 구문 분석 할 수 테이블의 첫 번째 토큰에 의해 모든 인수는 다음과 같습니다. 테이블 함수 및 unpack() 구문 분석은 매우 빠르게 구현됩니다.

0

OEM에 C 인터페이스가있는 경우 대신 binary module을 작성하는 것이 좋습니다.

가 에게
$: lua 

Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio 
> oem = require 'baroque-oem' 
> oem.foo('bar') 
+0

프로그래밍 방식으로 인터페이스에 액세스하는 것은 아니지만 (btw는 C 비트를 제공하지 않음) 인터페이스에 액세스해야하지만 16 진 코드를 의미에 매핑하지 않으려는 고객에게 적합합니다. 명령 행 도구 용. 목표는 시스템에서 작업을 수행하기 위해 세련되고 직관적 인 셸을 제공하는 것입니다. 이 방법이 제대로 작동한다면 고객에게 텍스트 UI를 제공하기위한 표준 도구가 될 가능성이 높습니다. – tbert

+0

미안하지만 "프로그래밍 방식으로 인터페이스에 액세스"와 "인터페이스에 액세스"의 차이점을 이해하지 못합니다. 또한 "16 진수 코드"가 무슨 의미 인지도 알지 못합니다. 또한 C 인터페이스가 없다면 루아에서 앱을 어떻게 관리하고 싶습니까? 원래 질문에 더 많은 정보를 추가 할 수 있습니다. – kikito

+0

아마도 그 말은별로 좋지 않았습니다. 필자가 제공하는 명령 행 관리 도구에 친숙한 인터페이스를 제공하는 lua (임베디드 장치 및 메모리가 프리미엄급)에 쉘 아날로그를 구현하려고합니다. 16 진수 코드는 사용자가 명령 줄 인수로 입력하는 16 진수 코드를 의미합니다. – tbert