[发明专利]一种代码转换方法、设备和存储介质在审
申请号: | 202010273897.0 | 申请日: | 2020-04-09 |
公开(公告)号: | CN111523290A | 公开(公告)日: | 2020-08-11 |
发明(设计)人: | 蔡亮;张帅;李伟;匡立中;邱炜伟 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | G06F40/154 | 分类号: | G06F40/154;G06F16/903 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310051 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 转换 方法 设备 存储 介质 | ||
本发明提供本发明提供一种代码转换方法、设备和存储介质,包括:将第一源代码中所有以双斜杠“//”开头,以换行结尾的代码删除后并生成第一文本;将第一文本中所有的空格字符删除后生成第二文本;判断第一文本中左右花括号数量是否相等:是,则顺序遍历第二文本,根据匹配的花括号类型执行对应的操作以生成节点树;根据节点树按照设定的层级、缩进规则生成第二代码。本发明根据不同的花括号类型做出不同的操作,以供构造节点树,并根据节点树按照相应的规则快速直接生成第二代码。
技术领域
本申请涉及计算机技术领域,具体涉及一种代码转换方法、设备和存储介质。
背景技术
在前端领域,使用标准CSS时,要为多层嵌套的元素定义样式,要么使用后代选择器从外到内的嵌套定义,要么给这个元素加上类名或id来定义。这样的写法虽然简单,但维护起来很不方便,原因在于CSS语法分散,无法清晰了解到样式之间的层级和关联。因此诞生了Less这样的语言,它是一种CSS预处理器,可以允许你使用嵌套的语法定义样式。在Less中,嵌套规则使得CSS语法分散,层级不清晰这样的问题迎刃而解。嵌套规则允许在一个选择器中嵌套另一个选择器,这更容易设计出精简的代码,并且样式之间的关系一目了然,而且在相应的html代码中,Less层级和html层级对应关系也更明确,在维护和修改代码时,能更快速的定位。
但是,在编写CSS代码或Less代码时,还需再手动编写相应的html代码,我们可以利用Less的代码规则,自动生成相对应的html代码,减少工作量。但目前还没有能将Less代码转换成相应html代码的方法。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种简单有效的代码转换方法、设备和存储介质。
第一方面,本发明提供一种代码转换方法,包括:
将第一源代码中所有以双斜杠“//”开头,以换行结尾的代码删除后并生成第一文本;
将第一文本中所有的空格字符删除后生成第二文本;
判断第一文本中左右花括号数量是否相等:
是,则顺序遍历第二文本,根据匹配的花括号类型执行对应的操作以生成节点树;
根据节点树按照设定的层级、缩进规则生成第二代码。
进一步,将第一源代码中所有以双斜杠“//”开头,以换行结尾的代码删除后并生成第一文本,包括:
通过第一正则表达式/\/\/.*\n/识别第一源代码中所有双斜杠“//”开头,以换行结尾的代码,删除后生成第一文本;其中,\/代表匹配一个左斜杠;.代表一个任意字符;*代表匹配次数,0次或n次,.*即代表匹配不确定数目的任意字符;\n代表换行字符,即一行的结尾。
进一步,将第一文本中所有的空格字符删除后生成第二文本,包括:
通过第二正则表达式/\s+/识别第一文本中空格字符,删除后生成第二文本;其中,s代表匹配一个空格字符;+代表匹配次数,匹配一次或多次,则\s+代表匹配任意长度的连续空格。
进一步,根据匹配的花括号类型执行对应的操作以生成节点树,包括:
配置一根节点压入栈底;根节点包括节点类型、节点名称、节点值和子节点列表;
判断匹配的花括号类型:
若类型为左花括号,则生成第一节点后压入堆栈;
若类型为右花括号,则将堆栈中的当前节点推出后作为下一节点的子节点,并放入下一节点的子节点列表;
遍历第二文本直到遍历完所有的花括号。
进一步,根据节点树按照设定的层级、缩进规则生成第二代码,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010273897.0/2.html,转载请声明来源钻瓜专利网。