用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧编程其他

关于Basic程序解释器及编译原理的简单化(2)---C++封装好的Basic解释器

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 19:40:05

这是CMake的源代码.主要负责词汇的提取
你可以调用它的CMake::get_token(),返回个CToken的类.

/////////////////////////////////////////////////////
// Make.h
///////////////////////////////////////////////////

enum token_types{DELIMITER,VARIABLE,NUMBER,COMMAND,
             STRING,QUOTE,FINISHED,NONE,ENTER};         // 标记类型集合

#define TOKEN_MAX 80
#define STRDELIMITER "+-*^/=;(),><" // 符号集合
#define DIM     11 // Dim
#define AS      12 // As
#define INTEGER 13 // Integer
#define PRINT   14 // Print

class CToken
{
public:
 char token[TOKEN_MAX];
 int token_type;
 int tok;
};

class CMake 
{
public:
 CMake(char *Prog,int Proglength);
 virtual ~CMake();
public:
    char *prog;
 int proglength;
 int isdelim(char c);     // 如果是运算符号返回1,不是则返回0
 int iswhite(char c);     // 是空格返回1,不是则返回0
 int look_up(char *c);    // 返回COMMAND类型,c是COMMAND字符串的指针
 CToken get_token(void);   // 得到标记
 int findchar(char *str,char ch); // 从str里找到ch,返回其在str里的引索;如果str里没有ch,则返回-1
};

/////////////////////////////////////////////////////////////////////

// Make.cpp: implementation of the CMake class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Make.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMake::CMake(char *Prog,int Proglength)
{
  proglength=Proglength;
  prog=new char[Proglength+1];
  strcpy(prog,Prog);
}

CMake::~CMake()
{
 
}


CToken CMake::get_token(void)
{
 register char *temp;
 CToken m_token;
    m_token.token_type=0;
 m_token.tok=0;
 temp=m_token.token;
 if(*prog=='

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:31,312.50000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号