词法分析器术语:令牌与令牌规则与令牌类型

问题描述

我只是为了学习而尝试创建一个词法分析器,我很难确切地理解什么是标记标记规则和标记类型。如果我理解正确:

  • token:这些是在请求时返回给解析器的词素实例。它们可以有(又名词素)、类型(例如KEYWORD_IF)、文字位置.

  • token type:特殊关键字的枚举(例如 RIGHT_PARENTHESIS

  • 令牌规则:同上

为了更好地理解它,我正在使用 TypeScript 创建一个简单的词法分析器。用户将能够定义规则如下:

import { lexer } from '..'

lexer.rules
  .add('<IDENTIFIER>',/<regex>/)
  .add('<IDENTIFIER>',/<regex>/)

add的签名:

export function add(id: string,regexp: RegExp) {
  // code here
}

我不完全理解的是术语和名称是否正确。我应该使用规则还是令牌,例如:

lexer.tokens
  .add('<IDENTIFIER>',/<regex>/)

或者tokenTypes

lexer.tokenTypes
  .add('<IDENTIFIER>',/<regex>/)

另外,我应该调用左侧标识符还是名称

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)