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

游戏开发团队镇江关键字优化公司

游戏开发团队,镇江关键字优化公司,徐州网站seo公司,蓬莱建设管理局网站确定标记类型 分为几个大类: 用户符号(类型/标识符/数字/字符串…)关键字 (流程控制和定义符)括号 (这里暂时认为 [] 属于括号)分号 上述四类标记基本囊括了 vc \texttt{vc} vc 中的所有最小单元的类型,但是因为构…

确定标记类型

分为几个大类:

  1. 用户符号(类型/标识符/数字/字符串…)
  2. 关键字 (流程控制和定义符)
  3. 括号 (这里暂时认为 [] 属于括号)
  4. 分号

上述四类标记基本囊括了 vc \texttt{vc} vc 中的所有最小单元的类型,但是因为构建标记流的程序还需要完成 vasm \texttt{vasm} vasm 文件的标记流构建,因此增加第五类:汇编符号

功能规划

据此,我们可以使用 enum class 记录下标记的类型,用结构体记录每一个标记的信息,用 vector 存储整个标记流,同时声明一个用于构建标记流的函数,有时候文件可能比较大,所以允许用户逐行生成标记流并整合起来。

对于一个源文件 S S S,使用两个整数变量 l , r l, r l,r ,每次让 r r r 向后移动,直到找到了一个标记的开头,或者说两个标记的分割处,然后将 S [ l , r − 1 ] S[l,r-1] S[l,r1] 作为一个标记,生成对应的信息。

代码参考

以下内容为读者可以参考的功能实现指南。

pretreat.h \texttt{pretreat.h} pretreat.h

//gloconst.h 声明了一些常用的函数
#include "gloconst.h"
namespace Interpreter {enum class TokenType {Empty,Identifier = 1, ExpressionEnd,Integer, Float, String, Char,SBracketL, SBracketR, MBracketL, MBracketR, LBracketL, LBracketR,//关键字VarDefine, FuncDefine, ClassDefine, NamespaceDefine,If, Else, Switch, Case, While, For, Continue, Break, Return, Private, Public, Protected, Super, Using, //运算符(除去[])Comma, Assign,Add, Minus, Mul, Divison, Mod, BitAnd, BitOr, BitXor, BitNot, Lmov, Rmov,Equ, Neq, Gt, Ge, Ls, Le,LogicAnd, LogicOr, LogicNot,CallMember, New, As, Region, ArrIndex, //下列内容为汇编符号,label 之前的是预处理指令集Expose, Extern, VasmRegion, Glomem, StringRegion, Rely,label = 1024,vbmov, vi32mov, vi64mov, vfmov, vomov, mbmov, mi32mov, mi64mov, mfmov, momov,add, sub, mul, _div, mod, ladd, lsub, lmul, _ldiv, lmod, fadd, fsub, fmul, fdiv, uadd, usub, umul, udiv, umod, badd, bsub, bmul, bdiv, bmod,eq, ne, gt, ge, ls, le, feq, fne, fgt, fge, fls, fle,_and, _or, _xor, _not, lmv, rmv, land, lor, lxor, lnot, llmv, lrmv, uand, uor, uxor, unot, ulmv, urmv, band, bor, bxor, bnot, blmv, brmv,ret, opop, pop,vbgvl, vi32gvl, vi64gvl, vfgvl, vogvl, mbgvl, mi32gvl, mi64gvl, mfgvl, mogvl,push0, push1,pvar0, pvar1, pvar2, pvar3, povar0, povar1, povar2, povar3,arrmem1, arromem1,pack, unpack, _new, jmp, jz, jp,setvar,poparg, push,pvar, povar, pglo, poglo, pstr,mem, omem,sys,arrnew, arrmem, arromem,call, ecall};//一些常用的范围constexpr TokenType OperTokenTypeStart = TokenType::Comma, OperTokenTypeEnd = TokenType::ArrIndex,KeywordTokenTypeStart = TokenType::VarDefine, KeywordTokenTypeEnd = TokenType::Using;struct Token {//类型TokenType Type;//内容ulong Ulong;double Float;string String;char Char;//该标记所处的行编号int Line;Token();};//用于调试void PrintToken(Token& Token);//进行一些准备和初始化,读取一个源文件之前都要运行一次void Pretreat_Init();//在标记流末尾添加内容,不会清空已有的内容int Pretreat_GetTokenList(vector<Token>& list, string& str, bool is_asm_style);
}

接下来在 pretreat.cpp \texttt{pretreat.cpp} pretreat.cpp 中实现三个函数,这里就不贴出代码了。

感兴趣的,可以点击这个链接参考代码。

http://www.yidumall.com/news/51392.html

相关文章:

  • 网站开发干啥的app优化方案
  • 贵州省住房和城乡建设厅网站搜索品牌策划的五个步骤
  • 职业学校网站建设方案长春网站推广公司
  • php网站制作过程中遇到的问题及解决办法商品热搜词排行榜
  • 深圳响应式网站找哪里单页网站
  • 简洁的wordpress主题seo和sem的区别
  • 盐城市城市建设投资公司网站引擎搜索
  • 江西 网站制作中国最新消息新闻
  • 微信公众号服务号网站开发流程seo搜索方法
  • 手机微网站建设案例及报告关键词点击排名系统
  • 天津武清网站开发11月将现新冠感染高峰
  • 青岛制作网站的欧洲站fba
  • 网站搭建原则seo博客
  • 如何把自己电脑做网站服务器龙岗百度快速排名
  • web网站开发适合女生嘛互联网推广运营是做什么的
  • 深圳做营销网站公司简介东莞网络公司网络推广
  • 青岛做网络直播的网站石家庄疫情太严重了
  • 怎么申请个人网站私域运营软件
  • 对电子商务网站建设的感想网络营销学什么内容
  • 设计师论坛重庆seo博客
  • 深圳电子商务网站制作广州市口碑seo推广外包
  • 网站开发营销网站多少钱自己怎么建网站
  • 个人网站的制作方法建设网站需要多少钱
  • 全国有名的网站建设公司郑州seo优化外包
  • 用asp怎么做网站seo排名优化代理
  • 做服装搭配图的网站营销方案
  • 建域名做网站百度推广话术全流程
  • 网站制作的主要流程营业推广的目标通常是
  • 网站建设手机版模板微信朋友圈推广文案
  • 手机网站哪些功能软件怎么推广