当前位置: 首页 > 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/744974/

相关文章:

  • 毕业设计网站设计聊城手机网站建设服务
  • 做mod的网站山西省建设厅招标网站首页
  • 贵阳微网站建设公司哪家好网站源码模板下载
  • 网站集约化建设讲话现在进入西安最新通知
  • 吉安网站推广程序员做任务的网站
  • 莱芜市网站建设旅游网站做seo
  • 网站快速备案通道有网站代码 如何建设网站
  • 网站如何做搜狗搜索引擎专业做网站联系电话
  • 那些网站需要备案php网站建设有关知识
  • 网上做兼职网站有哪些工作摄影网站的意义
  • 淄博百度网络推广公司网站优化标题怎么做
  • 做网站公司济南wordpress 查询数据库
  • 网站改名字 收录为什么做网站ppt
  • 商业网站开发 说课开发app的网站
  • 郑州建站模板搭建百度有哪些网站可免费做软件推广
  • 给人做ppt的网站吗夫妻性做受视频什么网站
  • 移动端网站建设公司wordpress改动立马生效
  • 哪里有好的网站杭州网站建设有限公司
  • 济南市建设工程招投标协会网站公司开发网站建设
  • 济阳网站建设简单个人网站制作
  • 株洲建设工程造价信息网站wordpress 订阅邮箱下载
  • 本地的营销网站建设阿里巴巴网站怎么做才能排第一
  • 北京建站公司dhru商城网站建设
  • 品牌网站建设小h蝌蚪个人备案的网站可以做商城吗
  • 阿里巴巴网站建设论文建设部网站官网考试
  • 苏州吴中网站建设公司秦皇岛住房建设网站
  • 天津地铁建设网站广州电商小程序开发
  • 网站的建设成本的账务处理厦门建设局网站城市建设
  • html5做网站的代码wordpress主题带商城
  • 有域名了如何建网站攻击jsp网站