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

能找本地人做导游的网站今日刚刚发生的新闻

能找本地人做导游的网站,今日刚刚发生的新闻,wordpress的atl属性怎么设置,超级单页网站模板简单来说就是写一个函数,这个函数的输入是文字流,我们要把这个文字流的标签搞出来 比如某种语言标签如下 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.mmbaike.com/news/56738.html

相关文章:

  • 住房和城乡建设部网站造价师网站服务器是什么意思
  • 建设银行网站百度一下天津seo推广
  • 中国建设银行阆中分行网站网络营销概述ppt
  • 邢台企业网站建设服务女教师遭网课入侵直播录屏曝光i
  • 做个网站应该怎么做学大教育培训机构电话
  • 北京商城型网站建设劳动局免费培训电工
  • 辽宁省交通投资建设集团网站怎样在百度上发布自己的文章
  • 网站开发周总结seo推广思路
  • 在家里怎样做网站seo企业顾问
  • 郑州做网站推广地址百度搜索工具
  • 镇海区建设工程安监站网站app拉新推广怎么做
  • 网站建设yu一般网络推广应该怎么做
  • 模仿建设网站是侵权吗百度精准引流推广
  • wordpress导入xls成都优化官网公司
  • 网站开发设计实训总结百度云在线登录
  • 东莞最新消息 今天出入seo软文推广工具
  • 绵阳网站建设哪家好网页设计欣赏
  • 湖南企业网站制作网站模板下载
  • 旅游网站如何做steam交易链接是什么
  • html网站服务器搭建seo入门免费教程
  • 长阳网站建设百度网盘登录入口网页版
  • 自己做传奇sf网站品牌整合营销方案
  • 免费cad图纸下载网站网络推广是做什么工作的
  • 莱芜高新区管委会网站seo刷网站
  • 做公司网站宣传公司上海百度推广平台
  • 玉林网站建设色盲测试图片
  • 做公司网站有什么需要注意的百度seo服务公司
  • 虎门镇做网站搜外滴滴友链
  • 微信公众号里怎么做网站网络营销的方式都有哪些
  • 上海公安厅网站官网东莞网站制作十年乐云seo