This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Wed Mar 27 12:07:47 2013 +0000
Revision:
2:b96c1e90d120
???????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 2:b96c1e90d120 1 /*********************************************************************************
nyatla 2:b96c1e90d120 2 * PROJECT: MiMic
nyatla 2:b96c1e90d120 3 * --------------------------------------------------------------------------------
nyatla 2:b96c1e90d120 4 *
nyatla 2:b96c1e90d120 5 * This file is part of MiMic
nyatla 2:b96c1e90d120 6 * Copyright (C)2011 Ryo Iizuka
nyatla 2:b96c1e90d120 7 *
nyatla 2:b96c1e90d120 8 * MiMic is free software: you can redistribute it and/or modify
nyatla 2:b96c1e90d120 9 * it under the terms of the GNU Lesser General Public License as published
nyatla 2:b96c1e90d120 10 * by the Free Software Foundation, either version 3 of the License, or
nyatla 2:b96c1e90d120 11 * (at your option) any later version.
nyatla 2:b96c1e90d120 12 *
nyatla 2:b96c1e90d120 13 * This program is distributed in the hope that it will be useful,
nyatla 2:b96c1e90d120 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nyatla 2:b96c1e90d120 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nyatla 2:b96c1e90d120 16 * GNU General Public License for more details.
nyatla 2:b96c1e90d120 17 *
nyatla 2:b96c1e90d120 18 * You should have received a copy of the GNU Lesser General Public License
nyatla 2:b96c1e90d120 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
nyatla 2:b96c1e90d120 20 *
nyatla 2:b96c1e90d120 21 * For further information please contact.
nyatla 2:b96c1e90d120 22 * http://nyatla.jp/
nyatla 2:b96c1e90d120 23 * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp>
nyatla 2:b96c1e90d120 24 *
nyatla 2:b96c1e90d120 25 *********************************************************************************/
nyatla 2:b96c1e90d120 26 #ifndef NYLPC_CMIMICTXTCOMPILER_H_
nyatla 2:b96c1e90d120 27 #define NYLPC_CMIMICTXTCOMPILER_H_
nyatla 2:b96c1e90d120 28 #include "NyLPC_cMiMicVM.h"
nyatla 2:b96c1e90d120 29
nyatla 2:b96c1e90d120 30 #ifdef __cplusplus
nyatla 2:b96c1e90d120 31 extern "C" {
nyatla 2:b96c1e90d120 32 #endif /* __cplusplus */
nyatla 2:b96c1e90d120 33
nyatla 2:b96c1e90d120 34
nyatla 2:b96c1e90d120 35 /**
nyatla 2:b96c1e90d120 36 * クラス型を定義します。
nyatla 2:b96c1e90d120 37 * NyLPC_cMiMicTxtCompilerクラスは、MiMicBCのTXTパートを、MiMicVMのインストラクション配列に変換します。
nyatla 2:b96c1e90d120 38 * MiMicBCは任意区切りのフラグメントテキストで入力できます。
nyatla 2:b96c1e90d120 39 */
nyatla 2:b96c1e90d120 40 typedef struct NyLPC_TcMiMicTxtCompiler NyLPC_TcMiMicTxtCompiler_t;
nyatla 2:b96c1e90d120 41
nyatla 2:b96c1e90d120 42
nyatla 2:b96c1e90d120 43 typedef NyLPC_TUInt8 NyLPC_TcMiMicTxtCompiler_ST;
nyatla 2:b96c1e90d120 44 #define NyLPC_TcMiMicTxtCompiler_ST_OPC 0x01 //OPをパース中
nyatla 2:b96c1e90d120 45 #define NyLPC_TcMiMicTxtCompiler_ST_OPR 0x02 //オペランドを解析中
nyatla 2:b96c1e90d120 46 #define NyLPC_TcMiMicTxtCompiler_ST_CTR 0x03 //制御パラメータを解析中
nyatla 2:b96c1e90d120 47 #define NyLPC_TcMiMicTxtCompiler_ST_OK 0x04 //パースを完了した。
nyatla 2:b96c1e90d120 48 #define NyLPC_TcMiMicTxtCompiler_ST_NG 0xff //パースでエラーが発生ウェーイ
nyatla 2:b96c1e90d120 49
nyatla 2:b96c1e90d120 50
nyatla 2:b96c1e90d120 51 struct NyLPC_TcMiMicTxtCompiler{
nyatla 2:b96c1e90d120 52 NyLPC_TUInt8* out_buf;
nyatla 2:b96c1e90d120 53 NyLPC_TUInt8 st;//ステータス
nyatla 2:b96c1e90d120 54 NyLPC_TcMiMicVM_OP_TYPE _current_opc; //解析中のオペコード
nyatla 2:b96c1e90d120 55 NyLPC_TUInt8 _current_oprtype; //解析中のオペランドタイプ
nyatla 2:b96c1e90d120 56 NyLPC_TUInt8 _inst_len; //解析中のインストラクションセットの長さ
nyatla 2:b96c1e90d120 57 NyLPC_TUInt8 _oprbc_len; //オペコード解析の一時変数
nyatla 2:b96c1e90d120 58 NyLPC_TUInt8 tmp_len;//tmpに格納したデータの数を数えたり。
nyatla 2:b96c1e90d120 59 NyLPC_TChar tmp[24];
nyatla 2:b96c1e90d120 60 };
nyatla 2:b96c1e90d120 61
nyatla 2:b96c1e90d120 62 typedef NyLPC_TUInt8 NyLPC_TcMiMicTxtCompiler_RET;
nyatla 2:b96c1e90d120 63 #define NyLPC_TcMiMicTxtCompiler_RET_OK 0x00
nyatla 2:b96c1e90d120 64 #define NyLPC_TcMiMicTxtCompiler_RET_OK_END 0x01 //命令のパースに成功し、かつEND命令を検出。
nyatla 2:b96c1e90d120 65 #define NyLPC_TcMiMicTxtCompiler_RET_CONTINUE 0x02 //続きのBCを要求している。
nyatla 2:b96c1e90d120 66 #define NyLPC_TcMiMicTxtCompiler_RET_NG 0x80
nyatla 2:b96c1e90d120 67
nyatla 2:b96c1e90d120 68
nyatla 2:b96c1e90d120 69
nyatla 2:b96c1e90d120 70 void NyLPC_cMiMicTxtCompiler_initialize(NyLPC_TcMiMicTxtCompiler_t* i_inst);
nyatla 2:b96c1e90d120 71 #define NyLPC_cMiMicTxtCompiler_finalize(i)
nyatla 2:b96c1e90d120 72 NyLPC_TcMiMicTxtCompiler_RET NyLPC_cMiMicTxtCompiler_compileFragment(NyLPC_TcMiMicTxtCompiler_t* i_inst,const struct NyLPC_TCharArrayPtr* i_bc,struct NyLPC_TUInt32ArrayPtr* i_bin,NyLPC_TUInt16* o_bin_len,NyLPC_TUInt16* o_parsed_bc);
nyatla 2:b96c1e90d120 73 NyLPC_TcMiMicTxtCompiler_RET NyLPC_cMiMicTxtCompiler_compileFragment2(NyLPC_TcMiMicTxtCompiler_t* i_inst,NyLPC_TChar i_bc,struct NyLPC_TUInt32ArrayPtr* i_bin,NyLPC_TUInt16* o_bin_len);
nyatla 2:b96c1e90d120 74
nyatla 2:b96c1e90d120 75
nyatla 2:b96c1e90d120 76 #ifdef __cplusplus
nyatla 2:b96c1e90d120 77 }
nyatla 2:b96c1e90d120 78 #endif /* __cplusplus */
nyatla 2:b96c1e90d120 79
nyatla 2:b96c1e90d120 80
nyatla 2:b96c1e90d120 81 #endif /* NYLPC_CMIMICTXTCOMPILER_H_ */