当前位置: 首页 > 专利查询>张海光专利>正文

一种基于标记的代码编辑方法技术

技术编号:20723814 阅读:34 留言:0更新日期:2019-03-30 17:28
本发明专利技术公开了一种基于标记的代码编辑方法,将代码文本转化为编程语言语法标记序列,在图形界面上显示语法标记序列,通过选择标记上的编辑动作,修改标记序列,最后将标记序列保存为代码文本。本发明专利技术提供的代码编辑方法,适于触摸屏和鼠标操作,方便在手机及平板电脑上编辑代码;标记的编辑动作有提示和限制作用,方便初学者学习编程。

【技术实现步骤摘要】
一种基于标记的代码编辑方法
本专利技术涉及一种基于标记的代码编辑方法,属于代码编辑

技术介绍
目前代码编辑大多通过键盘编辑代码文本。但是,在手机和平板等触摸屏设备上编辑代码时,需要外接键盘或使用触摸屏上的软键盘,都不是足够方便。同时,初学者学习编程时,缺少直观的提示工具,容易出现语法错误。
技术实现思路
为了解决上述问题,本专利技术的目的在于提供一种基于标记的代码编辑方法,将代码文本转化为编程语言语法标记序列,在图形界面上显示语法标记序列,通过选择标记上的编辑动作,修改标记序列,最后将标记序列保存为代码文本。本专利技术提供的代码编辑方法,适于触摸屏和鼠标操作,方便在手机及平板电脑上编辑代码;标记的编辑动作有提示和限制作用,方便初学者学习编程。本专利技术解决其技术问题所采用的技术方案是:一种基于标记的代码编辑方法,包括:输入步骤,接受代码字符序列;标记步骤,根据代码编程语言语法规则将代码字符序列经过词法分析转换为代码语法标记序列,如果代码语法标记序列为空或只包含分隔符标记,则将一个待定标记作为第一个标记加入标记序列,标记的类型包括关键字、标识符、字面量、运算符、分隔符、待定标记,其中标识符包括变量名、函数名、类名,字面量包括数字、字符串、布尔值,待定标记是未确定其字符序列的标记;渲染步骤,在图形界面上,换行分隔符标记显示为换行,行首的空格和制表分隔符标记显示为一定距离的空白,忽略位于其它类型标记之间的空格分隔符标记,将待定标记显示为一个空白按钮,剩余标记单独或组合后分别显示在按钮上,最后将代码标记序列渲染为一行到多行从左到右排列的按钮组合;编辑步骤,编辑者通过点击或触摸标记按钮,选择相应的一个或多个标记,根据当前所选标记或标记序列表示的代码编程语言语法结构,显示一个编辑动作列表给编辑者,编辑者选择其中一个编辑动作后,根据该编辑动作的含义,按照代码编程语言的语法规则,修改代码标记序列;重复渲染步骤和编辑步骤直到完成编辑;保存步骤,在显示为按钮的标记之间加入必要的空格分隔符标记,将代码标记序列转换为代码字符序列,如果代码标记序列为空或只包含待定标记,则将其转换为空的代码字符序列;输出步骤,输出代码字符序列。所述编辑步骤中:如果一行标记中只有一个标记且为待定标记或其它标记都是分隔符标记,此待定标记的编辑动作包括:替换为变量定义语句标记序列、替换为常量定义语句标记序列、替换为函数定义语句标记序列、替换为类定义语句标记序列、替换为类成员方法定义语句标记序列、替换为类成员变量定义语句标记序列、替换为接口定义语句标记序列、替换为接口方法定义语句标记序列、替换为赋值语句标记序列、替换为条件语句标记序列、替换为循环语句标记序列、替换为函数调用语句标记序列、替换为类实例方法调用语句标记序列、替换为类静态方法调用语句标记序列、替换为返回语句标记序列;若代码编程语言不支持编辑动作中所述的语法结构,则隐藏该编辑动作;若要替换的语句在当前上下文中不符合代码编程语言语法规则,则隐藏相应的编辑动作;替换为变量定义、常量定义或赋值语句标记序列时,该语句的左值和右值都以一个待定标记表示;替换为条件语句标记序列时,其中条件判断表达式以待定标记表示;替换为循环语句标记序列时,其中循环结构所需的表达式以待定标记表示;替换为函数定义、类定义、接口定义语句标记序列时,函数名、类名、接口名以一个待定标记表示;替换为函数定义、类定义、类成员方法定义、接口定义、条件语句、循环语句标记序列时,这些语法结构的内部语句以一个待定标记和所需的分隔符标记表示;替换为函数调用语句标记序列时,不能确定的函数名、函数的参数名以待定标记表示;替换为类实例方法调用语句标记序列时,不能确定的类实例名、类实例方法名、类实例方法的参数名以待定标记表示;替换为类静态方法调用语句标记序列时,不能确定的类名、类静态方法名、类静态方法的参数名以待定标记表示;替换为返回语句标记序列时,返回值表达式用一个待定标记表示;在图形界面空间足够时,替换为条件语句标记序列编辑动作分解为替换代码编程语言所支持的各种判断结构语句标记序列;在图形界面空间足够时,替换为循环语句标记序列编辑动作分解为替换代码编程语言所支持的各种循环结构语句标记序列。所述编辑步骤中:按下键盘Shift键并连续点击多个标记按钮,若这些按钮对应标记在同一个语句内,且包含这些标记的最小语法结构是表达式,则选择组成这个表达式的标记序列;在一个标记按钮上按下鼠标左键或触摸屏,保持按下并移动到同一语句内的其它标记按钮上松开鼠标左键或触摸屏,若包含这些移动经过的按钮对应标记的最小语法结构是表达式,则选择组成这个表达式的标记序列;点击图形界面空白处,隐藏编辑动作列表,并取消标记的选中状态。所述编辑步骤中:待定标记的编辑动作包括:选择表达式、录入字面量、录入标识符、录入关键字;表达式标记序列的编辑动作包括:选择表达式、录入字面量、录入标识符、录入关键字;关键字标记的编辑动作包括:录入关键字;标识符标记的编辑动作包括:录入标识符、录入字面量;字面量标记的编辑动作包括:录入字面量、录入标识符;运算符标记的编辑动作包括:录入运算符;选择表达式时,将显示一个表达式模板列表供编辑者选择,此表达式模板列表中包括单目表达式、双目表达式、三目表达式、Lambda表达式、匿名函数、属性访问表达式、数组下标表达式、类型转换表达式、正则表达式、对象字面量表达式、数组字面量表达式,编辑者选择一个表达式模板后,使用一个该表达式模板定义的标记序列替换所选标记或标记序列,其中新表达式标记序列内的操作数以待定标记表示;录入关键字时,同时显示一个关键字列表,列出所有当前上下文中可用的关键字,供编辑者选择后替换所选标记或标记序列;录入标识符时,同时显示一个标识符列表,列出所有当前上下文中可用的标识符,供编辑者选择后替换所选标记或标记序列;在图形界面空间足够时,录入标识符编辑动作分解为:录入变量名、录入常量名、录入函数或方法名、录入类名、录入属性名;录入字面量时,将显示一个文本框用于录入字面量,并用录入的字面量标记替换所选标记或标记序列;在图形界面空间足够时,录入字面量编辑动作分解为:录入数字、录入字符串、录入布尔值;字符串标记和其左右的字符串分隔符标记一起显示在同一个按钮上,此按钮被选择时显示字符串字面量标记的编辑动作列表;录入布尔值时,同时显示一个布尔值列表,供编辑者选择后替换所选标记;录入运算符时,同时显示一个运算符列表,列出所有当前上下文中可用的运算符,供编辑者选择后替换所选标记。所述编辑步骤中:标识符标记、字面量标记、组成表达式的标记序列、待定标记的编辑动作包括:添加左值、添加右值、改为三目条件表达式;添加左值时,在所选标记或标记序列左侧添加一个作为左操作数的待定标记和一个双目运算符标记;添加右值时,在所选标记或标记序列右侧添加一个双目运算符标记和一个作为右操作数的待定标记;改为三目条件表达式时,会将所选标记或标记序列作为三目条件表达式条件,在所选标记或标记序列右侧添加当前代码编程语言中组成三目条件表达式所需要的其它操作符标记和操作数标记,新加的表达式操作数以待定标记表示。所述编辑步骤中:标识符标记、字面量标记、组成表达式的标记序列、待定标记的编辑动作包括:添加表达式括本文档来自技高网...

【技术保护点】
1.一种基于标记的代码编辑方法,其特征在于,包括:输入步骤,接受代码字符序列;标记步骤,根据代码编程语言语法规则将代码字符序列经过词法分析转换为代码语法标记序列,如果代码语法标记序列为空或只包含分隔符标记,则将一个待定标记作为第一个标记加入标记序列,标记的类型包括关键字、标识符、字面量、运算符、分隔符、待定标记,其中标识符包括变量名、函数名、类名,字面量包括数字、字符串、布尔值,待定标记是未确定其字符序列的标记;渲染步骤,在图形界面上,换行分隔符标记显示为换行,行首的空格和制表分隔符标记显示为一定距离的空白,忽略位于其它类型标记之间的空格分隔符标记,将待定标记显示为一个空白按钮,剩余标记单独或组合后分别显示在按钮上,最后将代码标记序列渲染为一行到多行从左到右排列的按钮组合;编辑步骤,编辑者通过点击或触摸标记按钮,选择相应的一个或多个标记,根据当前所选标记或标记序列表示的代码编程语言语法结构,显示一个编辑动作列表给编辑者,编辑者选择其中一个编辑动作后,根据该编辑动作的含义,按照代码编程语言的语法规则,修改代码标记序列;重复渲染步骤和编辑步骤直到完成编辑;保存步骤,在显示为按钮的标记之间加入必要的空格分隔符标记,将代码标记序列转换为代码字符序列,如果代码标记序列为空或只包含待定标记,则将其转换为空的代码字符序列;输出步骤,输出代码字符序列。...

【技术特征摘要】
1.一种基于标记的代码编辑方法,其特征在于,包括:输入步骤,接受代码字符序列;标记步骤,根据代码编程语言语法规则将代码字符序列经过词法分析转换为代码语法标记序列,如果代码语法标记序列为空或只包含分隔符标记,则将一个待定标记作为第一个标记加入标记序列,标记的类型包括关键字、标识符、字面量、运算符、分隔符、待定标记,其中标识符包括变量名、函数名、类名,字面量包括数字、字符串、布尔值,待定标记是未确定其字符序列的标记;渲染步骤,在图形界面上,换行分隔符标记显示为换行,行首的空格和制表分隔符标记显示为一定距离的空白,忽略位于其它类型标记之间的空格分隔符标记,将待定标记显示为一个空白按钮,剩余标记单独或组合后分别显示在按钮上,最后将代码标记序列渲染为一行到多行从左到右排列的按钮组合;编辑步骤,编辑者通过点击或触摸标记按钮,选择相应的一个或多个标记,根据当前所选标记或标记序列表示的代码编程语言语法结构,显示一个编辑动作列表给编辑者,编辑者选择其中一个编辑动作后,根据该编辑动作的含义,按照代码编程语言的语法规则,修改代码标记序列;重复渲染步骤和编辑步骤直到完成编辑;保存步骤,在显示为按钮的标记之间加入必要的空格分隔符标记,将代码标记序列转换为代码字符序列,如果代码标记序列为空或只包含待定标记,则将其转换为空的代码字符序列;输出步骤,输出代码字符序列。2.根据权利要求1所述的一种基于标记的代码编辑方法,其特征在于,所述编辑步骤中:如果一行标记中只有一个标记且为待定标记或其它标记都是分隔符标记,此待定标记的编辑动作包括:替换为变量定义语句标记序列、替换为常量定义语句标记序列、替换为函数定义语句标记序列、替换为类定义语句标记序列、替换为类成员方法定义语句标记序列、替换为类成员变量定义语句标记序列、替换为接口定义语句标记序列、替换为接口方法定义语句标记序列、替换为赋值语句标记序列、替换为条件语句标记序列、替换为循环语句标记序列、替换为函数调用语句标记序列、替换为类实例方法调用语句标记序列、替换为类静态方法调用语句标记序列、替换为返回语句标记序列;若代码编程语言不支持编辑动作中所述的语法结构,则隐藏该编辑动作;若要替换的语句在当前上下文中不符合代码编程语言语法规则,则隐藏相应的编辑动作;替换为变量定义、常量定义或赋值语句标记序列时,该语句的左值和右值都以一个待定标记表示;替换为条件语句标记序列时,其中条件判断表达式以待定标记表示;替换为循环语句标记序列时,其中循环结构所需的表达式以待定标记表示;替换为函数定义、类定义、接口定义语句标记序列时,函数名、类名、接口名以一个待定标记表示;替换为函数定义、类定义、类成员方法定义、接口定义、条件语句、循环语句标记序列时,这些语法结构的内部语句以一个待定标记和所需的分隔符标记表示;替换为函数调用语句标记序列时,不能确定的函数名、函数的参数名以待定标记表示;替换为类实例方法调用语句标记序列时,不能确定的类实例名、类实例方法名、类实例方法的参数名以待定标记表示;替换为类静态方法调用语句标记序列时,不能确定的类名、类静态方法名、类静态方法的参数名以待定标记表示;替换为返回语句标记序列时,返回值表达式用一个待定标记表示;在图形界面空间足够时,替换为条件语句标记序列编辑动作分解为替换代码编程语言所支持的各种判断结构语句标记序列;在图形界面空间足够时,替换为循环语句标记序列编辑动作分解为替换代码编程语言所支持的各种循环结构语句标记序列。3.根据权利要求1所述的一种基于标记的代码编辑方法,其特征在于,所述编辑步骤中:按下键盘Shift键并连续点击多个标记按钮,若这些按钮对应标记在同一个语句内,且包含这些标记的最小语法结构是表达式,则选择组成这个表达式的标记序列;在一个标记按钮上按下鼠标左键或触摸屏,保持按下并移动到同一语句内的其它标记按钮上松开鼠标左键或触摸屏,若包含这些移动经过的按钮对应标记的最小语法结构是表达式,则选择组成这个表达式的标记序列;点击图形界面空白处,隐藏编辑动作列表,并取消标记的选中状态。4.根据权利要求1所述的一种基于标记的代码编辑方法,其特征在于,所述编辑步骤中:待定标记的编辑动作包括:选择表达式、录入字面量、录入标识符、录入关键字;表达式标记序列的编辑动作包括:选择表达式、录入字面量、录入标识符、录入关键字;关键字标记的编辑动作包括:录入关键字;标识符标记的编辑动作包括:录入标识符、录入字面量;字面量标记的编辑动作包括:录入字面量、录入标识符;运算符标记的编辑动作包括:录入运算符;选择表达式时,将显示一个表达式模板列表供编辑者选择,此表达式模板列表中包括单目表达式、双目表达式、三目表达式、Lambda表达式、匿名函数、属性访问表达式、数组下标表达式、类型转换表达式、正则表达式、对象字面量表达式、数组字面量表达式,编辑者选择一个表达式模板后,使用一个该表达式模板定义的标记序列替换所选标记或标记序列,其中新表达式标记序列内的操作数以待定标记表示;录入关键字时,同时显示一个关键字列表,列出所有当前上下文中可用的关键字,供编辑者选择后替换所选标记或标记序列;录入标识符时,同时显示一个标识符列表,列出所有当前上下文中可用的标识符,供编辑者选择后替换所选标记或标记序列;在图形界面空间足够时,录入标识符编辑动作分解为:录入变量名、录入常量名、录入函数或方法名、录入类名、录入属性名;录入字面量时,将显示一个文本框用于录入字面量,并用录入的字面量标记替换所选标记或标记序列;在图形界面空间足够时,录入字面量编辑动作分解为:录入数字、录入字符串、录入布尔值;字符串标记和其左右的字符串分隔符标记一起显示在同一个按钮上,此按钮被选择时显示字符串字面量标记的编辑动作列表;录入布尔值时,同时显示一个布尔值列表,供编辑者选择后替换所选标记;录入运算符时,同时显示一个运算符列表,列出所有当前上下文中可用的运算符,供编辑者选择后替换所选标记。5.根据权利要求1所述的一种基于标记的代码编辑方法,其特征在于,所述编辑步骤中:标识符标记、字面量标记、组成表达式的标记序列、待定标记的编辑动作包括:添加左值、添加右值、改为三目条件表达式;添加左值时,在所选标记或标记序列左侧添加一个作为左操作数的待定标记和一个双目运算符标记;添加右值时,在所选标记或标记序列右侧添加一个双目运算符标记和一个作为右操作数的待定标记;改为三目条件表达式时,会将所选标记或标记序列作为三目条件表达式条件,在所选标记或标记序列右侧添加当前代码编程语言中组成三目条件表达式所需要的其它操作符标记和操作数标记,新加的表达式操作数以待定标记表示。6.根据权利要求1所述的一种基于标记的代码编辑方法,其特征在于,所述编辑步骤中:标识符标记、字面量标记、组成表达式的标记序列、待定标记的编辑动作包括:添加表达式括号;添加表达式括号时,在所选标记或标记序列两侧分别添加表达式左括号标记和表达式右括号标记;表达式左括号标记和表达式右括号标记的编辑动作包括:左移、右移、添加左值、添加右值、改为三目条件表达式、添加表达式括号、删除;左移或右移表达式括号标记时,可跳过一个或多个标记,直到括号标记移动后形成一个合法的表达式,否则不移动表达式括号标记;添加左值时,在括号表达式的左侧添加一个作为左操作数的待定标记和一个双目运算符标记;添加右值时,在括号表达式的右侧添加一个双目运算符标记和一个作为右操作数的待定标记;改为三目条件表达式时,将括号表达式作为三目条件表达式条件,在表达式右括号标记右侧添加当前代码编程语言中组成三目条件表达式所需要的其它操作符标记和操作数标记,新加的表达式操作数以待定标记表示;在表达式左括号标记和表达式右括号标记上添加表达式括号时,在括号表达式标记序列两侧,分别添加表达式左括号标记和表达式右括号标记;删除时,将同时删除成对的两个表达式括号标记。7.根据权利要求1所述的一种基于标记的代码编辑方法,其特征在于,所述编辑步骤中:标识符标记、字面量标记、括号包围的表达式标记序列、待定标记的编辑动作包括:添加属性访问、添加数组下标、在前添加单目运算符、在后添加单目运算符;括号表达式右括号标记的编辑动作包括:添加属性访问、添加数组下标、在后添加单目运算符;括号表达式左括号标记的编辑动作包括:在前添加单目运算符;添加属性访问时,会在所选标记或标记序列右侧添加一个属性访问符标记和一个待定标记,这个待定标记用来表示属性名;添加数组下标时,会在所选标记或标记序列右侧添加一个数组下标运算符标记和一个待定标记,这个待定标记用来表示数组索引;在前添加单目运算符时,在所选标记或标记序列左侧插入单目运算符标记;在后添加单目运算符时,若代码编程语言支持右侧的单目运算符,在所选标记或标记序列右侧插入单目运算符标记,否则不显示此编辑动作。8.根据权利要求1所述的一种基于标记的代码编辑方法,其特征在于,所述编辑步骤中:标识符标记、字面量标记、组成表达式的标记序列、待定标记的编辑动作包括:剪切、复制;剪切或复制后,标识符标记、字面量标记、组成表达式的标记序列、待定标记的编辑动作还包括:粘贴;剪切和复制时,将所选标记或标记序列复制到剪贴板;剪切后,从代码标记序列中删除所选标记或标记序列,并在被删除标...

【专利技术属性】
技术研发人员:张海光
申请(专利权)人:张海光
类型:发明
国别省市:黑龙江,23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1