
#include "기계닉스_이름정의.h"


//[인터프리터:명령]
//{
    //[2012.08.07.화][추가!!!]{--------------------
    //[가상기계] 에 가깝게 처리하기 위하여 명령을 별도 분리.
    //}-------------------------------------------

    #define  d_명령_NULL          0
    #define  d_명령_각도           1
    #define  d_명령_속도           2
    #define  d_명령_각도속도        3
    #define  d_명령_각도8          4
    #define  d_명령_각도8T         5
    #define  d_명령_속도8          6
    #define  d_명령_각도설정        7
    #define  d_명령_각도설정X       8
    #define  d_명령_각도설정XT      9
    #define  d_명령_속도설정        10
    #define  d_명령_속도설정X       11
    #define  d_명령_각도속도설정     12
    #define  d_명령_설정반영        13
    #define  d_명령_펄스           14
    #define  d_명령_가감속상수       15
    #define  d_명령_가감속상수8      16
    #define  d_명령_가감속상수X      17
    #define  d_명령_완료보고시점     18
    #define  d_명령_완료보고시점X    19
    #define  d_명령_완료보고        20
    #define  d_명령_완료보고대기     21
    #define  d_명령_시간지연        22
    #define  d_명령_이동           23
    #define  d_명령_끝             24

    //[명령] 을 범위로 쉽게 구분하기 위한것.
    #define  d_명령범위_시작        d_명령_각도
    #define  d_명령범위_끝          d_명령_끝

    //[2012.08.10.금][추가!!!]
    #define  d_의사명령_이름상수     25

    //[2012.08.11.토][추가!!!]
    #define  d_의사명령_라벨        26

//}

//[2012.08.05.일][...]
void 인터프리터(void);

//[명령 처리]
//{
    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_각도(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_속도(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_각도속도(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_각도8(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_각도8T(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_속도8(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_각도설정(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_각도설정X(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_각도설정XT(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_속도설정(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_속도설정X(void);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_명령_각도속도설정(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_설정반영(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_펄스(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_가감속상수(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_가감속상수8(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_가감속상수X(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_완료보고시점(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_완료보고시점X(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_완료보고(void);

    //[2023.10.15.일][완료!!!]
    bool 인터프리터_명령_완료보고대기(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_시간지연(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_이동(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_명령_끝(void);

//}

//[기타]
//{
    //[2012.08.11.토][완료!!!]
    bool 인터프리터_선언라벨(void);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_이름상수(void);

//}

//[함수]
//{
    //[2012.08.21.화][완료!!!]
    void 인터프리터_초기화(void);

    //[2012.08.22.수][완료!!!]
    void 인터프리터_검증_초기화(void);

    //[2012.08.10.금][완료!!!]
    void 인터프리터_소멸자(void);

    //[2012.08.08.수][완료!!!]
    bool 인터프리터_값(char  *p단어,
                    int   *r값);

    //[2012.08.08.수][완료!!!]
    bool 인터프리터_속도종류(char  *p단어,
                         int   *r값);

    //[2012.08.22.수][완료!!!]
    bool 인터프리터_제어기번호_범위확인(unsigned char  p제어기번호);

    //[2012.08.09.목][완료!!!]
    bool 인터프리터_서보번호_범위확인(unsigned char  p서보번호);

    //[2012.08.09.목][완료!!!]
    bool 인터프리터_각도_범위확인(unsigned char  p각도);

    //[2012.08.09.목][완료!!!]
    bool 인터프리터_완료보고비율_범위확인(unsigned char  p완료보고비율);

    //[2012.08.09.목][완료!!!]
    bool 인터프리터_설정개수_범위확인(unsigned char  p설정개수);

    //[2012.08.10.금][완료!!!]
    bool 인터프리터_인수개수초과확인(int  p인수개수);

    //[2012.08.10.금][완료!!!]
    void 인터프리터_명령_오류처리(void);

    //[2012.08.22.수][완료!!!]
    void 인터프리터_단어_주석제거(char  *pr문자열);

//}

//[이름 상수 자료 관리]
//{
    //[2012.08.11.토][완료!!!]
    void 인터프리터_이름상수_비우기(void);

    //[2012.08.12.일][완료!!!]
    void 인터프리터_이름상수_추가(char  *p이름,
                             char  *p상수);

    //[2012.08.12.일][완료!!!]
    bool 인터프리터_이름상수_상수부(char  *p이름,
                              char  *r상수);

//}

