首页 > 其他分享 >markdown.md不保存网页编辑器

markdown.md不保存网页编辑器

时间:2023-04-02 14:22:39浏览次数:31  
标签:Node md 结点 markdown 语法分析 入栈 ExtractedType 编辑器 内容

{GrammarName}的内容提取器(Extracter

得到单词流TokenList和语法树Node后,就可以得到{GrammarName}的实际内容{ExtractedType}了。之后程序员就可以自由地对此{ExtractedType}对象进行任何操作了。

实现{ExtractedType}Extracter的要点,简述如下:

  1. 用后序优先遍历算法(Post-Order Traversing),遍历Node的每个结点。由于Node结构可能很大,所以用递归形式的算法会发生堆栈溢出异常StackOverflowException,所以必须用非递归形式的算法。

  2. 根据词法分析和语法分析的过程可知,每个终结点'a',都对应一个Token。我们将此Token的内容入栈(即Stack.Push(token.value))。

  3. 根据词法分析和语法分析的过程可知,每每个非终结点A,都对应一个规约规则,也就是一条文法规则Regulation(例如A : X Y 'z' ;)。因为我们采用了后序优先遍历,所以A的各个子结点的内容都已经入栈(这是关键!)了。此时,我们可以根据A对应的Regulation,知道栈里都有哪些内容、其排列顺序如何(例如从栈顶到栈底依次为; 'z' Y X)。那么,我们就可以将这些内容依次出栈(即object obj = Stack.Pop();),用以构造A对应的内容,而后将此内容入栈。

  4. 在不断经历上述2.和3.的过程中,Node中的信息会被不断提取到更高层的结点,最终提取到根结点,就形成了StepFile

得到了StepFile,首先就可以格式化原有的*.step文件了。这也可以验证前面的词法分析、语法分析、提取过程的正确性。

然后,可以汇总手中所有的*.step文件包含的Type,以便观察其规律,帮助我理解其功能。

标签:Node,md,结点,markdown,语法分析,入栈,ExtractedType,编辑器,内容
From: https://www.cnblogs.com/bitzhuwei/p/markdown-editor.html

相关文章

  • 洛谷 P8918 『MdOI R5』Jump 题解
    题目传送门这一题其实很简单,只是要想到正确方法我一开始用了奇怪的搜索①无解的情况:看上去很离奇,实际上略加思索就会发现,如果输入\(n\)为偶数,那么就铁定无解。证明过程如下:令\(n\bmod{2}=0\),人距离\(n\)点的距离为\(dis\),则当走出第一步(步长为\(1\))时,有:\[dis=\midn......
  • Markdown语法
    Markdown语法标题在标题前输入几个#,就是几级标题,最大支持6级标题1级标题2级标题3级标题字体引用在文本前插入">">输入文本 加粗在文本的两边插入"**”**这里是加粗的文本**斜体在文本俩侧加入"*"*这里是斜体的文本*删除线**在文本俩侧加入"~~"~~这里是删除线......
  • vivim编辑器
    目录vi/vim编辑器1、简介2、三种状态模式及功能键2.1.插入模式2.2.命令模式2.3.底行模式3、乱码问题vi/vim编辑器1、简介vi/vim都是多模式编辑器,不同的是vim是vi的升级版本,不仅兼容vi的所有指令,而且还有一些新的特性在里面。vi编辑器是所有Unix及Linux系统下的标准......
  • Lamda表达式
    函数式接口任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口publicinterfaceRunnable{ publicabstractvoidrun();}对于函数式接口,我们可以通过lambda表达式来创建该接口的对象lambda表达式练习一://推导Lambda表达式publicclassTestLambda1{......
  • sublime编辑器中ANSI编码的汉字出现乱码
    问题:使用sublime打开一个ANSI编码的文件,出现乱码。解决方法:安装ConvertToUTF8插件打开sublime,按键Ctrl+Shift+p ,会出现如下图所示 然后,你输入installpackage点击InstallPackage,然后,你再输入ConvertToUTF8点击回车.这时,你可以在sublime的左下角看见提示,这说明正在安装C......
  • Jupyter notebook中markdown书写格式
    Jupyternotebook中markdown书写格式前言:markdown是一种简洁明了的书写格式,适用于计算机专业编写博客等,包括加粗、图片、标题等级、代码等。markdown可用于多个平台,只要平台支持该形式即可使用,例如Jupyternotebook、博客园等都可以使用markdown格式书写。本篇主要提供一些m......
  • Vue引用富文本编辑器
    1.在package.json加上并安装依赖"devDependencies":{"@jsdawn/vue3-tinymce":"^1.1.7",}2.在页面中引入importVue3Tinymcefrom"@jsdawn/vue3-tinymce";3.使用<vue3-tinymcev-model="item.blockDataObj.text":setting=&qu......
  • Vue引用富文本编辑器
    1.在package.json加上并安装依赖"devDependencies":{"@jsdawn/vue3-tinymce":"^1.1.7",}2.在页面中引入importVue3Tinymcefrom"@jsdawn/vue3-tinymce";3.使用<vue3-tinymcev-model="item.blockDataObj.text":s......
  • 微信小程序之实现封装一个富文本编辑器 Editor
    前言富文本编辑器,可以对图片、文字进行编辑。编辑器导出内容支持带标签的html和纯文本的text,编辑器内部采用delta格式进行存储。通过setContents接口设置内容时,解析插入的html可能会由于一些非法标签导致解析错误,建议开发者在小程序内使用时通过delta进行插入。富文本......
  • 网页编辑器粘贴图片自动上传到服务器(Java版)
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......