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

这是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=='/0')
 {
  *m_token.token='/0';
  m_token.tok=0;
  m_token.token_type=FINISHED;
  return m_token;
 }
 while(iswhite(*prog)) ++prog;
   
 if(*prog=='/r') // 如果是换行符
 {
  m_token.token[0]=*prog;
  m_token.token[1]='/0';
  m_token.token_type=ENTER;
  prog++;
  return m_token;
 }
 if( isdelim(*prog)) // 如果找得到运算符号标记
 {
    *m_token.token=*prog;
    *(m_token.token+1)='/0';
    m_token.tok=0;
    m_token.token_type=DELIMITER;
    prog++;
    return m_token;            // 譬如 token[0]='+' token[1]='/0';
 }

 if(*prog=='"')   // 如果是字符串
 {
  prog++;
  int i=0;
  while(*prog!='"' && *prog!='/r')
  {
   m_token.token[i]=*prog;
   i++;
   prog++;
  }
  prog++;
  m_token.token[i]='/0';
  m_token.token_type=QUOTE;
  return m_token;
 }

 if( isdigit(*prog)) // 如果找到数字标记
 {
  int i=0;
  while(isdigit(*prog) && i<TOKEN_MAX) // 小于token最长为80个字符
  {
   m_token.token[i]=*prog;
   i++;
   prog++;
  }
  m_token.token[i]='/0';
  m_token.token_type=NUMBER;
  return m_token;
 }
 if( isalpha(*prog)) // 如果是命令COMMAND或是一般标记STRING
 {

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 基于basic语言的解释器是一种用于将basic语言代码转换成机器可执行指令的软件工具。Basic语言是一种相对简单易学的编程语言,常用于初学者的编程教学和简单应用开发。基于Basic解释器能够解析Basic语言的代码,并逐行执行其中的命令,使程序得以运行。 电子书指的是以电子形式存储和传播的书籍。基于Basic解释器可以作为电子书的内容之一,提供了编程教学的具体示例和指导,让读者能够通过电子设备学习Basic编程语言。 基于Basic解释器电子书通常具备以下特点: 1. 交互性:通过解释器的使用,读者可以与代码进行交互式的编程练习,通过输入指令并观察解释器的执行结果,加深对Basic语言的理解。 2. 动态演示:解释器电子书可以提供代码执行过程的动态演示,通过图形界面或命令行界面展示代码在解释器中的执行过程,帮助读者更好地理解和掌握Basic编程。 3. 示例和练习:解释器电子书通常包含丰富的例子和练习,帮助读者提升Basic编程的实践能力。 4. 知识总结:电子书一般会概括和总结Basic语言的基本语法、常用函数和编程技巧,方便读者快速掌握核心知识点。 5. 其他补充资源:解释器电子书可能还会提供一些与Basic编程相关的补充资源,如代码库、参考手册等,帮助读者更全面地学习和应用Basic编程。 通过基于Basic解释器电子书,读者可以在任何时候、任何地点学习和实践Basic编程,加深对编程的理解和掌握,并为进一步学习其他编程语言打下基础。 ### 回答2: 基本解释器电子书是一种电子书格式,其中包含了基本解释器的相关内容和资料。基本解释器是一种编程语言解释器,用于将编写的计算机程序解释并运行。它通常用于教学和学习目的,以帮助初学者理解编程的基本概念。 基本解释器电子书可以提供关于基本解释器的指导、示例代码、实践项目等内容,帮助读者逐步掌握基本解释器的使用和原理。这种电子书一般会详细介绍基本解释器的工作原理、基本语法规则和常见的编程技巧。通过阅读这样的电子书,读者可以快速入门基本解释器,并学会如何编写简单的程序。 对于有一定编程经验的读者来说,基本解释器电子书也可以作为一个参考工具,帮助他们在使用基本解释器时解决一些常见的问题和难题。这些电子书通常会提供一些高级的技巧和技巧,帮助读者优化程序性能,增强程序的功能和扩展性。 与传统的纸质书籍相比,基本解释器电子书具有可交互性和便携性的优势。读者可以在电子设备上方便地访问和阅读这些电子书,还可以利用电子书的搜索功能快速定位所需的信息。另外,一些基本解释器电子书还提供了在线编程环境,读者可以直接在书籍内部进行编码实践,提高编程技能。 总之,基本解释器电子书是一种便捷的学习和参考工具,帮助读者理解和掌握基本解释器的使用和原理。无论是初学者还是有经验的程序员,都可以通过阅读这些电子书来提升自己的编程能力。 ### 回答3: 基于我的理解,basic解释器是一种能够解释和执行basic编程语言的软件工具。Basic是一种简单易学的编程语言,由约翰·凯明尼和托马斯·库尔塞开发于1960年代,广泛应用于初学者和教育领域。 Basic解释器是一种特定的程序,它能够读取和解析以basic语言编写的电子书,并根据书中的指令逐行执行相应的操作或算法。基本上,它可以理解并翻译书中的basic代码,使计算机能够按照作者的意图执行相应的计算任务。 通过basic解释器,读者能够逐步深入学习并理解basic编程语言的基本知识和概念。它帮助读者了解如何使用basic语言来编写简单的程序、控制流程、处理数据和与计算机交互等。电子书作为媒介,结合了文本、代码示例和练习等形式,能够帮助读者更直观地学习和理解basic语言的概念和用法。 通过使用basic解释器电子书,读者可以在实时编写和测试代码的同时获得反馈。这种实践的学习方式有助于读者快速掌握basic编程语言,并培养编程思维和解决问题的能力。此外,使用电子书的好处还包括易于更新和改进内容、提供交互式的学习体验以及支持多种学习工具和资源的集成。 综上所述,basic解释器电子书是一种利用basic解释器来解析和执行basic编程语言的电子书籍,它能够帮助读者系统学习和掌握basic语言的编程概念和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HashCodeWithJava

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值