4)栈顶动作:PUSH: 将当前节点和状态压入栈 POP:出栈并恢复当前节点和状态 NOP:无栈操作 5)读写头动作:NEXT: 移动至下一字符 SKIP: 越过转义串或保留名串 PAUSE: 暂定于当前字符 STOP:停机于当前字符 6)状态转移列表: 说明: space 指符合空格定义的字符 name 指符合命名定义的字符 namepre 指符合命名的第一个字符 token 指除去保留字符外字符 other 指除去已判断以外的字符 (状态)输入符(栈操作,状态,读写头动作) (NOP,NIL_SKIP,NEXT)/*初始化*/ (NIL_SKIP) space (NOP,NIL_SKIP,NEXT) /*忽略起始空格*/ < (NOP,TG_OPEN,NEXT) /*遇到标记*/ ‘\0’ (NOP,NIL_SUCCEED,STOP) /*终结符*/ other (NOP,NIL_FAILED,STOP) /*无效字符*/ (TG_OPEN) ! (NOP,DS_OPEN,NEXT) /*遇到声明符*/ ? (NOP,IS_OPEN,NEXT) /*遇到指令符*/ / (POP,TG_PRE_CLOSE,NEXT) /*准备关闭标记*/ namepre (NOP,NS_NAME_BEGIN,PAUSE) /*元素名开始*/ other (NOP,NIL_FAILED,STOP) /*非法字符*/ (DS_OPEN) other (NOP,DS_SKIP,PAUSE) /*忽略声明*/ (DS_SKIP) > (NOP,DS_CLOSE,PAUSE) /*声明结束*/ other (NOP,DS_SKIP,NEXT) /*忽略声明*/ (DS_CLOSE) > (NOP,TG_CLOSE,PAUSE) /*标记关闭*/ other (NOP,NIL_FAILED,STOP) /*非法字符*/ (CM_BEGIN) - (NOP,CM_END,SKIP) /*注释开始*/ token (NOP,CM_BEGIN,NEXT) /*继续注释串*/ other (NOP,NIL_FAILED,STOP) /*非法字符*/ (CM_END) > (NOP,DS_CLOSE,PAUSE) /*注释关闭*/ other (NOP,NIL_FAILED,STOP) /*非法字符*/ (CD_BEGIN) ] (NOP,CD_END,SKIP) /*界段开始*/ token (NOP,CD_BEGIN,NEXT) /*继续界段*/ other (NOP,NIL_FAILED,STOP) /*非法字符*/ (CD_END) > (NOP,DS_CLOSE,PAUSE) /*声明关闭*/ other (NOP,NIL_FAILED,STOP) /*非法字符*/ (IS_OPEN)
|
正在阅读:网页编程必看:XML文法分析网页编程必看:XML文法分析
2004-12-06 10:14
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键