포스트를 만든 목적 SyntaxHighlighter 용, lua plug-in 공유하려고 만들었다. 내용 -- one line comments --[[ multi line comments ]] -- double quoted string str = "dddddd" -- single quoted string str = 'dddddddddddddd' -- multi line double quoted string str = "dddddddd \ ddddddddddddddd" -- multi line single quoted string str = 'dddddddd \ ddddddddddddddd' var = 3 print(var) 보면 아시겠지만, SyntaxHighlighter 3.0.83 버전이 나와서, 한..
Lua 검색 결과
개요 이번 문제는 그래픽 편집기를 만들어 보는 것이다. 너무 다행이게도, 텍스트로 9개의 기능만 구현하면 된다. 이것을 구현하는 것은 커맨드 라인형 인터페이스, 그래픽 편집 기능을 생각해보라는 데에 목적을 두고 있는 것 같다. 본문 그래픽 편집기를 만드는 규칙은 이러하다. 1. 입력은 한 줄에 하나씩의 편집기 명령으로 구성된다. 2. 각 명령은 줄 맨 앞에 있는 대문자 한개로 표현된다. 3. 매개변수가 필요한 경우에는 그 명령과 같은 줄에 스페이스로 분리되어 입력 한다. 4. 픽셀은 1 ~ M 열과, 1 ~ N 행 으로 표현된다. 5. 책에선 유효 범위를 250 픽셀 안쪽으로 정하지만 난 무시하겠다.(옆집 강아지의 이름을 기억해 주지 않아!) 6. 좌측 상단을 1, 1 으로 정하고, 이곳을 원점으로 정한..
음 제목을 좀 바꾸었다. 제목 만드는것이 매우 힘들기 때문이다 : ) 그건 그렇다고 하고, 여기서 말하고자 하는 것은 "루아에서 C코드로 만든 라이브러리를 끌어올 수 있다." 이다. 일반적으로 루아에선 ANSI C에서 구현할 수 없는 기능을 포함하지 않지만, 이렇게 동적으로 라이브러리를 끌어 올 수 있는 것에는 예외를 두고 있다. 루아는 이 기능을 특정 플랫폼에서만 지원을 하고 있는데, 윈도우, 맥 OS X, 리눅스 FreeBSD, 솔라시스 및 UNIX 가 있다. 현재 자신의 플랫폼에서 라이브러리를 끌어올수 있는지 체크하는 방법은, 다음과 같이 하고, 그 결과를 보면 된다. print( package.loadlib("a","b") ) 를 실행 했을 때, "존재하지 않는 파일" 이라고 오류가 뜨면, 기능을..
8장부터는 컴파일과 실행 및 오류 검사에 대한 이야기를 하고 있다. 이번 8.1 에선 컴파일에 대한 이야기를 하고 있는데, 루아는 인터프리터 언어로써, 실행 중에 코드를 컴파일 할 수 있는 기능을 제공해 주고 있다고 한다. 파일을 컴 파일 할 때는 두개의 명령어가 있는데, 하나는 dofile, 다른 하나는 loadfile 이다. dofile과 달리 loadfile은 오류를 일으켜도 정지하지 않고, 오류 코드를 반환해 준다. 파일을 컴파일 하는 두 컴파일 함수는 무엇이 다를까? dofile의 경우, 호출 한 번에 파일 내부의 모든 실행을 한번 실행해 준다. 간단한 작업을 한번만 처리 하고자 할 때는 dofile이 유용하다고 한다. loadfile의 경우, 호출 한번에 파일 내부의 모든 실행을 .. 하지 않..
음.. 진짜 반복자라는 말이나. 클로저라는 말이나. 어찌 보면 다 함수들인데 이런 말들이 섞이면서 매우 햇갈리게 된다. 그 이유는 루아가 버전을 올리면서, 생겨난 일이지 아닐까 싶다. 일반 for문의 원리는 아직 변하지 않으므로, 이번 장은 패스 한다. 이번 항목의 마지막 결론을 인용하자면, 루아의 Old 버전에서 사용 한 방법이고, 대부분의 경우 이 방법은 쓰이지 않을 것이라고 한다. 관련 링크 : http://www.lua.org/pil/7.5.html 총평 생각 없이 책 보기 시작한지 어느덧..
이번 항목은 일반적인 반복자 형태가 아닌, 좀 복잡한 형태로 반복을 해야 할 경우에, 클로저를 사용하는게 더 좋다는 이야기를 하고 있다. 클로저란? C++ 과 비교하자면, 함수 오브젝트를 들수 있겠다. 다른 방법으론 table을 이용한 복잡한 반복자를 구현 할 수 있겠으나, 책에선 성능상의 이유로 클로저가 더 좋다고 이야기 한다. 클로저는 테이블 생성하는것보다 부하가 적으며, 테이블 필드 접근보다 더 빠르기 때문이라고 한다. 관련 링크 : http://www.lua.org/pil/7.4.html 총평 !? 요즘 들어 생각을 안하고 책을 보는거 같다..
최근댓글