OP 코드라고 하지만, 쉽게 읽을 수 있는 가벼운 인터프린터형 언어라고 보면 됩니다.
초기 컴파일러를 테스트하기 위해서 설계하였습니다.
컴파일러가 완성되면 플래시 등으로 플랫폼을 옮겨갈 예정입니다.
모든 코드는 대소문자 구별이 없습니다.
- 변수 선언
- Boolean (변수이름)
- String (변수이름)
- Number(변수이름) : double
- 사용자 변수는 언더바(_)로 시작하며, 시스템 변수는 언더바로 시작할 수 없다.
- 시스템 변수
- ResultBoolean, ResultString, ResultNumber : 연산 이후 결과를 저장
- ReturnBoolean, ReturnString, ReturnNumber : 함수 호출 이후 결과를 저장
- 연산
- 이항연산
- Plus (변수/데이터) (변수/데이터)
- Minus (변수/데이터) (변수/데이터)
- Mul (변수/데이터) (변수/데이터)
- Div (변수/데이터) (변수/데이터)
- Mod (변수/데이터) (변수/데이터)
- 단항연산
- 문자열 연산
- Cat (변수/데이터)
- Length (변수/데이터)
- CharAt (인덱스)
- 논리연산
- Equal (변수/데이터) (변수/데이터)
- Number의 경우에는 문자열로 변경한 후 비교하도록 한다.
- Big (변수/데이터) (변수/데이터)
- Small (변수/데이터) (변수/데이터)
- Not (변수/데이터)
- 조건문
- If (변수) (OP Code)
- 문자의 경우 문자열의 길이가 0보다 크면 true
- IfNot (변수) (OP Code)
- 함수 호출
- Call (함수이름) [인수1, 인수2 ...]
- 스택
- Push (변수/데이터)
- POP (변수)
- POP : 버리기
- Peek (변수)
- Peek (변수, 인덱스) : 인덱스 만큼 깊은 곳의 자료를 인출
- 기타
- // : 주석
- Const (상수이름) (데이터)
- @라벨이름
- Jump @라벨이름
- Move (변수/Data) to (변수)