프로그래밍/Script(11)
-
[Lua, Json] lua에서 json 처리하기. json for lua
여러 Json 모듈이 있다. http://lua-users.org/wiki/JsonModules 이 사람이 만든 게 encode_pretty가 맘에 들어서 한번 테스트 해봤다.http://regex.info/blog/lua/json예쁘게 출력이 없으면... 그 긴 json 파일이 일렬로 늘어서는 마법이.. 대부분 file에서 읽어들여 처리하는 것이 없어 file 처리 스크립트를 만들었다.딱히 뭐가 있는건 아니고 그냥 파일 열어서 디코딩하고 인코딩하고 쓰고.. 코드 https://github.com/ElementalKiss/Lua/tree/master/Json jsonFileProcessor.lua1234567891011121314151617181920212223242526272829303132--[[ D..
2016.01.15 -
[루아] Lua에서 .과 :의 차이(?) + OOP
http://lua-users.org/wiki/ColonForMethodCall 일반적으로인스턴스 메소드는 : 콜론을 사용하여 호출한다.클래스나 팩토리 매소드, 필드를 접근할 때는 . 을 주로 사용한다. OOP느낌으로?https://github.com/ElementalKiss/Lua/blob/master/OopExample.lua 12345678910111213141516171819202122232425262728293031323334353637-- Meta ClassRectangle = {area = 0, length = 0} -- Base Class function Rectangle:New(cpyRect,length)-- copy constructure? newRect = cpyRect or {} s..
2015.12.17 -
개론
코드 뭉치(chunk)단순하게 나열된 명령들이나 문장들의 의미한다. 루아는 나열된 문장 간에는 구분자가 필요하지 않다.123456789a = 1b = a*2 a = 1;b = a*2; a = 1; b = a*2 a = 1 b = b*2cs 이 모든게 동일!마지막거는 도저히 못봐주겠다 ㅠㅠㅠㅠㅠ 1lua -i [filename]csfilename 파일 안에 담긴 코드뭉치를 실행한 다음 대화모드로 들어간다. dofile 함수로 라이브러리를 읽고인터프리터와 대화모드로 실행 중인 콘솔에서 작업을 할 수 있다. 어휘 규정식별자시별자(identifier)는 숫자로 시작하지 않는 영문자, 숫자, 밑줄의 조합이라면 모두 사용할 수 있다. 주의할 것 : _VERSION (이런 조합은 루아에서 특별한 용도로 쓰이기 때문에..
2015.10.01 -
Lua와 C 바인딩
스택 이해하기C와 lua간 연동에 중요한 요소는 가상 스택이다.lua의 스택 액세스 방법은 절대/상대 접근이 있다. 양수 값 - 절대 접근음수 값 - 상대 접근 절대 접근 방법은 스택 base에서 시작해 양수 1,2,3으로 순서를 부여하는 방법이다.상대 접근 방법은 스택 top에서 시작해 음수 -1,-2,-3으로 순서를 부여하는 방법이다. *스택의 마지막 값을 접근 시 -1, 바닥부터 접근 시 1 lua_checkstack : 스택 사이즈를 확인하기 위한 lua C API LUA_MINSTACK 20 으로 정의 허용 가능한 스택 인덱스 범위는1(index
2015.09.20 -
Lua 메타테이블
테이블의 한계테이블은 아주 중요한 자료형. 대부분의 작업이 테이블에서 가능하다.하지만 한계도 있다. ex) 테이블 간의 비교와 연산은 불가능. 1tblRes = tbl1 + tbl2 -- Xcs 이런 것을 가능하게 하는 것이 메타테이블테이블간의 덧셈연산도 가능하고 필요시 다른 작업으로 치환해서 사용할 수 있다. 메타테이블 정보 출력루아에서 테이블들은 각각 메타테이블을 가지고 있다.사용자 데이터 역시 메타테이블을 가지고 있다. 메타테이블 확인 함수1getmetatable(tbl)cs 메타테이블이 설정되어 있지 않다면 해당 함수는 nil을 반환한다. 메타테이블 설정하기1setmetatable(tbl, metatbl)cs 메타테이블을 지정하면 미리 정의된 함수들로 함수를 재정의 할 수 있다.그리고 따로 함수를..
2015.09.20 -
Lua 5.x와 4.0 호환성
원문http://ospace.tistory.com/97 Lua 5.x와 Lua 4.0 호환성Lua 4.0과 Lua 5.x와 완변한 호환성이 제공되지 않는다. 버전 5.x로 업그레이드 한다면 다음 사항을 주의하길 바란다. 언어에서 변경된 내용- 모든 tag메소드가 메타테이블로 대치되었다 - 괄호 사이에 있는 함수는 반드시 값 한 개만 반환해야한다 - 목록 형태의 생성자에서 마지막 항목에 있는 함수(예를 들어 {a, b, f() })에서 반환 값은 목록 맨뒤에 차례로 추가된다. - or의 우선순위가 and 우선순위보다 낮다 - in, false, true은 예약어이다 - 예전 생성 형태인 for k, v in t(여기서 t는 table)은 제거되었다. (아직까지는 지원되지만 가급적이면 for k,v in p..
2015.09.20