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

长沙网站优化安徽网络优化公司排名

长沙网站优化,安徽网络优化公司排名,微信公众号第三方平台有哪些,网站可以做信息抓取吗❓问题1:grammar.js 不是用正则表达式 /.../ 吗?为什么有 print 这样的字符串? ✅ 回答: grammar.js 分成两类“终结符”表示法: 表达方式含义xxx直接匹配该字符串字面量/regex/匹配符合正则的文本 💡 …

❓问题1:grammar.js 不是用正则表达式 /.../ 吗?为什么有 'print' 这样的字符串?

✅ 回答:

grammar.js 分成两类“终结符”表示法:

表达方式含义
'xxx'直接匹配该字符串字面量
/regex/匹配符合正则的文本

💡 举例说明:

'print'           // 匹配文本里正好是 "print" 这个词
/[a-zA-Z_]+/      // 匹配任何标识符(如变量名)

Tree-sitter 支持 literal 字符串正则表达式,它们有不同的用途:

  • '=''let''function' 等是关键词或符号,通常写成字符串字面量
  • 正则主要用来定义通用格式,比如数字、标识符、字符串、注释

❓问题2:token(...) 有什么用?为什么不用正则就行了?

✅ 核心回答:

你写 /.../ 只是写了个规则,tree-sitter 默认会尝试进一步拆解规则内容

token(...) 的作用是:

告诉 Tree-sitter:这个部分是词法单位,不要对它再做语法结构解析了!


📌 举个例子:

🔴 没有 token 的情况:
number: $ => /\d+\.\d+/

Tree-sitter 会试图把这个规则拆开,比如它会试着把 123.45 拆成:

  • 123
  • .
  • 45

这样它就可能匹配错,或者让你写更多优先级规则去处理冲突,非常麻烦。

✅ 使用 token
number: $ => token(/\d+\.\d+/)

Tree-sitter 就会说:

好的,我不拆了,我直接把 123.45 当成一个整体 number 了!


✅ 总结:token(...) 用于匹配词法单位(不可再拆分的基本块),防止 tree-sitter 把内容继续“语法解析”。


❓那关键词比如 seqchoice 等就不能省略吗?我直接 /regex/ 一行行写正则不行吗?

✅ 回答:

你当然可以全写正则,但:

  • 正则只能写“单个词法单元”,比如标识符、数字、注释等;
  • seqchoice 等是用来构建**语法结构(句法规则)**的。

换句话说:

正则是词法(Lexical),而 seq/choice/... 是句法(Syntactic)


📌 比如:

// 正则可以写变量名
identifier: $ => /[a-zA-Z_][a-zA-Z0-9_]*/// 但你要写 let x = 123; 就必须用结构化方式:
variable_declaration: $ => seq('let',$.identifier,'=',$.number,';'
)

✅ 总结一波三问:

问题回答
grammar.js 只能写 /.../ 吗?为什么还有 '...''...' 是字符串字面量,比如关键字、符号等
为什么还要 token(...),不用正则不行吗?token(...) 告诉 tree-sitter:这是一个不可再分的词法单元
能只写正则不写 seq/choice/optional 吗?正则只能写“单元”,构建结构必须用 seq 等关键词

你现在完全可以尝试自己写个 grammar.js 的小文件啦!想不想我们来练一下,比如:解析 let x = 1; 或者 print("hello")

只要你告诉我你想写哪种结构,我可以边写边讲,完全按你节奏来 😎


文章转载自:

http://f3eWOHY1.hwnnm.cn
http://POFIoA6h.hwnnm.cn
http://bT0xc4jU.hwnnm.cn
http://gGZzItAf.hwnnm.cn
http://davzpEFV.hwnnm.cn
http://RUjxVWYs.hwnnm.cn
http://352CPlEb.hwnnm.cn
http://4mOssIMH.hwnnm.cn
http://dr5ksAGp.hwnnm.cn
http://WdkSzj1u.hwnnm.cn
http://mh5vQYn3.hwnnm.cn
http://xY7uAIw4.hwnnm.cn
http://4XopFe18.hwnnm.cn
http://09ZrwdZe.hwnnm.cn
http://97q8PP6S.hwnnm.cn
http://wBGAd1ta.hwnnm.cn
http://wKQJjajl.hwnnm.cn
http://NVSfj4II.hwnnm.cn
http://ithLQo9W.hwnnm.cn
http://Bq0Ne5k2.hwnnm.cn
http://YbO0i77j.hwnnm.cn
http://aIEoBfPm.hwnnm.cn
http://Ow8Or9UD.hwnnm.cn
http://po3QamJ2.hwnnm.cn
http://9H0KxNja.hwnnm.cn
http://t1dExpgm.hwnnm.cn
http://bMhuovdc.hwnnm.cn
http://0CJ6Vv2T.hwnnm.cn
http://v9RcJBA7.hwnnm.cn
http://1iPQRRkq.hwnnm.cn
http://www.dtcms.com/wzjs/689816.html

相关文章:

  • 集团企业网站建设方案策划书创网通信科技有限公司
  • 响应式网站源码.net域名查询168
  • 重庆哪家制作网站好代理商注册个人还是公司
  • 微表单网站内江移动网站建设
  • 域名备案后网站打不开阿里云 建设wordpress
  • 怎么给网站做跳转优化大师使用心得
  • 关于开展全县中小学校网站群建设的请示报告湖南株洲网
  • 关于旅行的网站怎样做广州网站设计素材
  • 哪个网站可以做制图兼职WordPress调用不同主题
  • 北京网站开发网站建设wordpress主题缓存
  • 河南宝盈建设集团有限公司网站怎么把一个网站设置成首页
  • 三星杭州 两学一做网站WordPress的博客添加按钮
  • 济宁网站设计深圳属于哪个省
  • 网站域名 格式网站建设国内排行
  • 电商网站wordpress建设网站服务
  • 网站编程培训机构wordpress 文章截取
  • 设计网站用什么软件37网页游戏平台官网
  • 网站如何建设目录结构深圳4a广告公司有哪些
  • 网站开发工程师php岗位职责分类达人介绍
  • 免费投票网站制作湖北建网站公司
  • 站长工具seo综合查询方法北京城建十建设工程有限公司网站
  • 做前端常用的网站及软件下载wordpress企业电商主题排行榜
  • 深圳苏州企业网站建设服务公司安徽建设工程信息网查
  • 重庆网站建设雪奥科技网站建设 核算
  • 深圳极速网站建设费用做改网站
  • 沧州网站制作如何完成seo优化
  • 辽宁建设厅查询网站首页购物app哪个好
  • 网站制作怎么学去哪学网站开发毕业指导手册
  • 做海报推荐网站企业查询网站有哪些
  • dedecms网站地图前台路径不修改普通人开网店赚钱吗