当前位置: 首页 > news >正文

住房和城乡建设部网站准考证怎么做电商运营的基本步骤

住房和城乡建设部网站准考证,怎么做电商运营的基本步骤,wordpress网站编辑,注册网站会不会有风险简单来说就是写一个函数,这个函数的输入是文字流,我们要把这个文字流的标签搞出来 比如某种语言标签如下 enum Token {tok_eof -1,// commandstok_def -2,tok_extern -3,// primarytok_identifier -4,tok_number -5, }; 然后词法分析器相当于一个…

简单来说就是写一个函数,这个函数的输入是文字流,我们要把这个文字流的标签搞出来

比如某种语言标签如下

enum Token {tok_eof = -1,// commandstok_def = -2,tok_extern = -3,// primarytok_identifier = -4,tok_number = -5,
};

然后词法分析器相当于一个函数,排除空格,检查扫描的文字,然后给出标签

static std::string IdentifierStr; // Filled in if tok_identifier

static double NumVal;             // Filled in if tok_number

/// gettok - Return the next token from standard input.

static int gettok() {

  static int LastChar = ' ';

  // Skip any whitespace.

  while (isspace(LastChar))

    LastChar = getchar();

  if (isalpha(LastChar)) { // identifier: [a-zA-Z][a-zA-Z0-9]*

    IdentifierStr = LastChar;

    while (isalnum((LastChar = getchar())))

      IdentifierStr += LastChar;

    if (IdentifierStr == "def")

      return tok_def;

    if (IdentifierStr == "extern")

      return tok_extern;

    return tok_identifier;

  }

  if (isdigit(LastChar) || LastChar == '.') { // Number: [0-9.]+

    std::string NumStr;

    do {

      NumStr += LastChar;

      LastChar = getchar();

    } while (isdigit(LastChar) || LastChar == '.');

    NumVal = strtod(NumStr.c_str(), nullptr);

    return tok_number;

  }

//跳注释

  if (LastChar == '#') {

    // Comment until end of line.

    do

      LastChar = getchar();

    while (LastChar != EOF && LastChar != '\n' && LastChar != '\r');

    if (LastChar != EOF)

      return gettok();

  }

  // Check for end of file.  Don't eat the EOF.

  if (LastChar == EOF)

    return tok_eof;

  // Otherwise, just return the character as its ascii value.

  int ThisChar = LastChar;

  LastChar = getchar();

  return ThisChar;

}

这段代码是一个词法分析器的实现,用于将输入分解成标记(tokens)。它定义了一个全局变量IdentifierStr用于保存标识符的名称,NumVal用于保存数值字面量的值。

gettok函数从标准输入中读取下一个字符,并根据字符的类型返回相应的标记。它首先跳过任何空格字符,然后根据字符的类型进行不同的处理。

如果字符是字母,则识别为标识符。gettok会读取连续的字母和数字字符,将它们保存在IdentifierStr中,并根据IdentifierStr的值判断是否是关键字(如"def"和"extern")或是普通的标识符。

如果字符是数字或小数点,则识别为数值字面量。gettok会读取连续的数字和小数点字符,将它们保存在NumStr中,并使用strtod函数将其转换为双精度浮点数,保存在NumVal中。

如果字符是井号(#),则识别为注释。gettok会跳过注释直到行尾,并递归调用gettok函数获取下一个标记。

如果字符是文件结尾(EOF),则返回标记tok_eof表示已到达文件结尾。

否则,将字符作为其ASCII值返回。

总的来说,这段代码实现了一个简单的词法分析器,可以将输入分解成标记,并根据标记的类型进行相应的处理。

源码地址1. Kaleidoscope: Kaleidoscope Introduction and the Lexer — LLVM 18.0.0git documentation

http://www.yayakq.cn/news/857683/

相关文章:

  • 青岛李沧区城乡建设局网站莱芜金点子信息港最新
  • 设计软件网站推荐网站前端用什么语言
  • 绍兴网站建设公司电话北京展览设计制作工厂
  • 梅州东莞网站建设做网站送的小程序有什么用
  • 做网站是什么编程深圳龙华做网站公司
  • 政务内网网站建设方案商城网站怎么建设
  • 宁德市住房和城乡建设局新网站制作网站微信登陆入口
  • 郑州网站建设及托管自己如何注册网站
  • 南京网站制作公司电话什么是网络营销请举几个例子说明
  • 哈尔滨专业建网站方案代理网页游戏需要什么条件啊
  • 购物网站建设 成都海外网络推广外包
  • 做网站爱游戏长沙做网站公司 上联网络
  • 高安网站设计深圳网络推广外包公司
  • 合肥集团网站建设公司营销网站建设步骤
  • 南京网站建设王道下拉??网站备案域名所有人
  • 张家口网站建设价格网站制作公司北京网站建设公司哪家好
  • 网站的排版包括什么网站免费站
  • 外贸网站建设专业定制防做网站
  • 惠州网站建设公司曾洛可可设计公司简介
  • 商丘网站制作软件怎么申请个人网站
  • 怎样创建网站吉洋大鼓宁波自助建站系统
  • win10虚拟目录 做网站佛山做网站yunzhanfs
  • 黑河网站建设公司湛江vi设计公司
  • 承接app网站开发的广告建立网站容量
  • 建筑网站源码网站短链接怎么做
  • 网站描述 关键词查看网站浏览量
  • 世界杯网站源码下载手机主页网站哪个好用
  • 百度 网站描述背投广告典型网站
  • 网站建设销售长沙推广型网站建设
  • 泰安网站建设优化案例报告企业邮箱什么格式