如何将json的上下文无关语法转换为状态机
How convert the context free grammar of json to state machine?
我阅读了JSON的上下文无关语法(http://www.json.org/)和解析器:如何解析JSON文本以生成对象或数组(https://github.com/douglascrockford/JSON-js/blob/master/json_parse_state.js)。
但是我不知道如何将JSON cfg转换为状态机。
谁能更详细地描述一下?
你不能构建一个"解析" json的状态机,因为状态机在技术上不能匹配嵌套括号。
您可以构建一个下推自动机(PDA),使用堆栈来跟踪括号。如果您手工完成,您将构建类似于LR(0)解析器的东西。如果您打算这样做,使用LALR解析器生成器会更容易我将学习语法并为您构建PDA。
您还可以通过在识别器中"编译"语法规则来编写自己的递归下降解析器。对于JSON,这是一个相当合理的事情;语言并没有那么复杂。关于如何构建递归下降解析器,请参阅我的SO答案。
相关文章:
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- CSS转换立即进入最终状态
- 使用状态参数转换到不同的状态
- 如何处理 React / Flux 组件中的状态转换
- UI 路由器 - 在状态之间转换时记住滚动位置
- 转换后触发css悬停状态更改
- Getconnection()不适用于状态机
- Angular JS具有在状态转换期间可见的来自两个不同状态的页面(用于动画目的)
- 将event.offsetX和event.offset Y的坐标转换为webGL本机坐标
- 如何在AngularJS$rootScope事件侦听器中应用状态转换
- UI路由器-状态转换延迟(非常慢)
- 如何在 ThreeJS 中应用矩阵转换并将结果设置为默认状态
- 角度 UI 状态转换问题
- 为什么这个简单的函数不能在这个javascript状态机中的这个对象上运行
- JavaScript 的分层状态机
- 实现用于 JavaFx2.0 游戏框架的简单状态机
- javascript状态机onafterevent是't被叫
- 流星状态机
- 如何将json的上下文无关语法转换为状态机