亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? path390.cpp

?? IBM的解析xml的工具Xerces的源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright 2002,2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* * $Id: Path390.cpp,v 1.3 2004/09/08 13:56:41 peiyongz Exp $ *///#include "stdafx.h"#include <fstream.h>#include <stdio.h>#include <ctype.h>#include <typeinfo>#define _XOPEN_SOURCE_EXTENDED 1#include <stdlib.h>#include <string.h>#include "Path390.hpp"#include <xercesc/util/PlatformUtils.hpp>#include <xercesc/framework/MemoryManager.hpp>XERCES_CPP_NAMESPACE_BEGIN//Constructors:Path390::Path390() {   _error = 0;   _absolute = false;   _dsnabsolute = false;   _parsestate=PARSE_NONE;   _orgparms=0;   _resultpath=0;   _orgpath=0;}Path390::Path390(char * s) {   _error = 0;   _absolute = false;   _dsnabsolute = false;   _parsestate=PARSE_NONE;   _orgparms=0;   _resultpath=0;   _orgpath=0;   setPath(s);}//Destructor:Path390::~Path390() {   if (_orgparms)      XMLPlatformUtils::fgMemoryManager->deallocate(_orgparms);//free (_orgparms);   if (_resultpath)      XMLPlatformUtils::fgMemoryManager->deallocate(_resultpath);//free(_resultpath);   if (_orgpath)      XMLPlatformUtils::fgMemoryManager->deallocate(_orgpath);//free(_orgpath);}// This path parser is state driven in order to support an incremental parse of the input path.// This is so that, for example, someone only wants to determine whether the path is absolute or// relative, then it will only parse sufficient information to determine this. This information// is saved in the object so that this does not need to be re-parsed if later one wanted to// retrieve, for example, the parameters.// The states are://    PARSE_NONE - initial state, nothing is parsed.//    PARSE_ABSOLUTE_URI - Absolute or relative path has been determined.//    PARSE_PATHTYPE - The type of the path has been determined//    PARSE_PUNCT - The important delimiters have been located to make later parsing simpler.//    PARSE_PARMS - The parms have been located and retrieved.//    PARSE_PARSED - The path has been fully parsed.//// Each of the following methods handle the parsing corresponding to each state.//// Determine if the path is absolute or relative.void Path390::_determine_uri_abs() {   if (_parsestate == PARSE_NONE) {      if (*_curpos == '/') {         _uriabsolute=true;         _curpos++;      } else         _uriabsolute=false;      _parsestate = PARSE_ABSOLUTE_URI;   }}// Determine the path type. This could be://    PATH390_HFS - format is hfs:/xxx/xxx...//    PATH390_DSN1 - format is dsn:/xxx/xxx...//    PATH390_DSN2 - format is dsn://xxxxx...//    PATH390_DD - format is dd:xxx...//    PATH390_OTHER - format is any other paths.void Path390::_determine_type() {   char firstfour[5];   if (_parsestate == PARSE_ABSOLUTE_URI) {      char * ff=firstfour;      int ffi=0;      while ((_curpos[ffi]) && (ffi<4)) {ff[ffi] = toupper(_curpos[ffi]); ffi++;}      if ( (ffi>=4) && !strncmp(firstfour,"DSN:",4) ) {         _pathtype = PATH390_DSN1;         _curpos+=4;         _absolute = true;         if ( ((*_curpos) && (*_curpos == '/')) && ((*(_curpos+1)) && (*(_curpos+1) == '/')) ) {            _pathtype = PATH390_DSN2;            }         }      else if ( (ffi>=4) && !strncmp(firstfour,"HFS:",4) ) {         _pathtype = PATH390_HFS;         _curpos+=4;         if (*_curpos == '/')            _absolute = true;         else            _absolute = false;         }      else if ( (ffi>=3) && !strncmp(firstfour,"DD:",3) ) {         _absolute = true;         _pathtype = PATH390_DD;         _curpos+=3;         }      else {         _pathtype = PATH390_OTHER;         if (_uriabsolute)            _curpos--;         }      _parsestate = PARSE_PATHTYPE;   }}// This takes one pass through the path any determines the location of important delimiters// including / ; . and (// It will also detect some error conditionsvoid Path390::_determine_punct() {   if (_parsestate == PARSE_PATHTYPE) {      char * source = _curpos;      _lastsemi = 0;      _lastslash = 0;      _lastparen = 0;      _parmStart = 0;      _pathEnd = 0;      _numperiods = 0;      _numsemicolons = 0;      _extStart = 0;      while (*source) {         switch (*source) {            case ';':               _lastsemi = source;               _parmStart = source+1;               _numsemicolons++;               break;            case '/':               _lastslash = source;               _pathEnd = source;               break;            case '.':               _extStart = source+1;               _numperiods++;               break;            case '(':               _lastparen = source+1;               break;         }         *source++;      }      if ( (_parmStart) && (_parmStart<=_pathEnd) ) {         _error = ERROR_SEMICOLON_NOT_ALLOWED;         _lastsemi = 0;         _parmStart = 0;      }      if ( ((_pathtype == PATH390_DD) || (_pathtype == PATH390_DSN1) || (_pathtype == PATH390_DSN1)) &&           (_extStart <= _pathEnd) ) {         if (_extStart)            _error = ERROR_PERIOD_NOT_ALLOWED;         _extStart = 0;      }      if (_extStart < _lastparen)         _extStart = 0;      _parsestate = PARSE_PUNCT;   }}// This extracts the parameters from the path if there are any. It also determines if the parameters// contain type=recordvoid Path390::_determine_parms() {   if (_parsestate == PARSE_PUNCT) {      char * tr = 0;      if (_parmStart) {         _orgparmlen = strlen(_parmStart)+1;         _orgparms = (char*) XMLPlatformUtils::fgMemoryManager->allocate(_orgparmlen * sizeof(char));// (char *) malloc(_orgparmlen);         char * ts=_parmStart;         char * td=_orgparms;         while (*ts)           *td++ = tolower(*ts++);         *td = 0;         *_lastsemi = 0;         tr = strstr(_orgparms,"type=record");      }      if (tr)        _typerecord = tr - _orgparms;      else        _typerecord = -1;      _parsestate = PARSE_PARMS;   }}// Complete the rest of the parse.void Path390::_parse_rest() {   if (_parsestate == PARSE_PARMS) {      char *source;      char *dest;      char * filename_start;      char * tmpPos;      int pathlen = strlen(_curpos);      _resultpath = (char*) XMLPlatformUtils::fgMemoryManager->allocate((pathlen+10) * sizeof(char));//(char *) malloc(pathlen+10);      source = _curpos;      dest = _resultpath;      switch (_pathtype) {         case PATH390_DSN1:            // This format needs to be mangled from a hierarchical (hfs style) path to the            // traditional MVS format. First check for some errors.            if (_lastparen) {               _error = ERROR_NO_PAREN_ALLOWED;               break;            }            if ((_uriabsolute) && (!_absolute)) {               _error = ERROR_ABS_PATH_REQUIRED;               break;            }            if ( ((_extStart) && (_numperiods > 1)) ||                 ((!_extStart) && (_numperiods)) ) {               _error = ERROR_NO_EXTRA_PERIODS_ALLOWED;               break;            }            if ( ((_parmStart) && (_numsemicolons > 1)) ||                 ((!_parmStart) && (_numsemicolons)) ) {               _error = ERROR_NO_EXTRA_SEMIS_ALLOWED;               break;            }            // start out the result with //            *dest++ = '/';            *dest++ = '/';            // If the input path starts with a / then it is absolute and it must be            // enclosed in 's            _dsnabsolute = false;            if (*source == '/') {              _dsnabsolute = true;              source++;            } else if (_uriabsolute) {               _error = ERROR_MUST_BE_ABSOLUTE;               break;            }            char * pathstart;            pathstart = source;            // Add in the ' if this is an absolute path'            if (_dsnabsolute) *dest++ = '\'';            // If there is a / in the path....            tmpPos = source;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品v| 精品一区二区三区欧美| 亚洲成av人片在线观看无码| 久久疯狂做爰流白浆xx| 欧美午夜不卡视频| 国产欧美精品一区aⅴ影院| 日韩成人精品在线观看| 成人av电影免费观看| 精品国产一区二区亚洲人成毛片| 亚洲日本丝袜连裤袜办公室| 激情五月婷婷综合网| 欧美中文字幕一区二区三区| 国产精品情趣视频| 久久av中文字幕片| 69久久99精品久久久久婷婷| 国产在线精品一区二区 | 国产精品久久久久桃色tv| 亚洲成a人片综合在线| 99re热视频精品| 国产夜色精品一区二区av| 日韩精品乱码av一区二区| 91国模大尺度私拍在线视频| 国产精品成人免费精品自在线观看 | 欧美高清一级片在线观看| 美国三级日本三级久久99| 91蜜桃婷婷狠狠久久综合9色| 久久久久久久久久久99999| 蜜臀99久久精品久久久久久软件| 欧美视频中文一区二区三区在线观看| 国产精品久久久久久久久久久免费看 | 久久久久久久av麻豆果冻| 日本三级亚洲精品| 3d动漫精品啪啪一区二区竹菊| 亚洲视频每日更新| 成人国产精品免费观看动漫| 精品国产精品一区二区夜夜嗨| 日本成人中文字幕| 欧美成人伊人久久综合网| 日本韩国一区二区| 亚洲一二三区视频在线观看| 91国产视频在线观看| 亚洲专区一二三| 欧美美女一区二区| 日韩成人伦理电影在线观看| 日韩欧美电影一区| 精品一区二区久久| 久久久久一区二区三区四区| 国产激情精品久久久第一区二区 | 人人超碰91尤物精品国产| 欧美日韩一级黄| 蜜臀av在线播放一区二区三区| 日韩一级欧美一级| 国产成人午夜精品影院观看视频| 国产无一区二区| 97se狠狠狠综合亚洲狠狠| 亚洲永久精品大片| 欧美大片国产精品| 成人美女视频在线观看18| 亚洲精品日韩综合观看成人91| 欧美亚洲国产一区二区三区| 欧美aⅴ一区二区三区视频| 久久免费视频色| 91视频国产观看| 日韩成人伦理电影在线观看| 久久久久久综合| 色狠狠av一区二区三区| 日本成人中文字幕在线视频| 国产欧美一区二区三区在线看蜜臀| 9i看片成人免费高清| 视频在线观看一区| 国产亚洲女人久久久久毛片| 日本精品免费观看高清观看| 九九热在线视频观看这里只有精品| 欧美激情一区二区三区在线| 欧美日韩亚洲综合在线 | 亚洲人一二三区| 制服.丝袜.亚洲.另类.中文| 国产suv精品一区二区6| 亚洲一区二区三区在线| 久久九九99视频| 欧美在线观看视频在线| 国产九色精品成人porny| 亚洲尤物在线视频观看| 国产亚洲污的网站| 欧美精品vⅰdeose4hd| av亚洲精华国产精华| 久久99精品久久久久久| 一区二区三区资源| 国产三区在线成人av| 337p亚洲精品色噜噜噜| 91在线精品一区二区三区| 激情图片小说一区| 亚洲va中文字幕| 亚洲精品乱码久久久久久黑人| 久久久久久久综合日本| 欧美一级在线观看| 精品视频一区二区不卡| 91麻豆产精品久久久久久| 国产成人丝袜美腿| 麻豆国产精品一区二区三区| 亚洲国产精品麻豆| 一区二区三区日韩欧美精品| 国产丝袜欧美中文另类| 日韩免费看的电影| 欧美日韩在线三级| 日本韩国一区二区三区视频| 99久久伊人网影院| 成人黄色一级视频| 丁香一区二区三区| 国产乱对白刺激视频不卡| 国内精品免费**视频| 蜜桃久久av一区| 另类小说色综合网站| 免费在线观看精品| 免费成人在线影院| 久久99在线观看| 狠狠色狠狠色合久久伊人| 精品亚洲欧美一区| 久久99国产乱子伦精品免费| 日本va欧美va精品| 国模冰冰炮一区二区| 国产不卡视频在线观看| 国产91高潮流白浆在线麻豆| 国产大陆a不卡| 高清不卡一区二区| 99精品黄色片免费大全| 色综合激情久久| 欧美日韩精品一区二区天天拍小说| 欧美综合一区二区| 在线电影一区二区三区| 日韩欧美黄色影院| 久久久久久99久久久精品网站| 国产人成亚洲第一网站在线播放 | 精品在线一区二区三区| 国产精品一区在线观看你懂的| 国产成人亚洲精品狼色在线 | 国内不卡的二区三区中文字幕 | 精品国产免费视频| 久久综合九色综合97_久久久| 国产色爱av资源综合区| 日韩毛片在线免费观看| 亚洲国产中文字幕在线视频综合| 视频一区二区三区中文字幕| 老司机免费视频一区二区| 国产乱子伦视频一区二区三区| 99久免费精品视频在线观看 | 日韩视频免费观看高清完整版在线观看 | 狠狠狠色丁香婷婷综合激情| 国产成人免费9x9x人网站视频| 99视频在线精品| 91精品国产综合久久精品麻豆| 久久―日本道色综合久久| 亚洲猫色日本管| 久久精品国产澳门| 色综合一区二区三区| 91精品国产一区二区三区蜜臀 | 高清日韩电视剧大全免费| 色天天综合色天天久久| 日韩欧美国产一二三区| 中文字幕一区二区三区色视频| 午夜视频在线观看一区二区三区| 国产精一区二区三区| 欧美三级乱人伦电影| 久久久欧美精品sm网站| 夜夜亚洲天天久久| 国产成人午夜片在线观看高清观看| 在线观看三级视频欧美| 久久精品水蜜桃av综合天堂| 污片在线观看一区二区| 成+人+亚洲+综合天堂| 日韩欧美在线观看一区二区三区| 亚洲视频电影在线| 国产精品99精品久久免费| 欧美绝品在线观看成人午夜影视| 国产女人18毛片水真多成人如厕| 午夜精品一区二区三区三上悠亚| 丁香激情综合五月| 精品少妇一区二区三区视频免付费 | 欧美美女一区二区三区| 亚洲人成精品久久久久久| 国产尤物一区二区在线| 在线电影院国产精品| 亚洲国产你懂的| 91亚洲永久精品| 中文字幕成人av| 国内久久婷婷综合| 日韩美女视频在线| 日韩精品一二区| 欧美性视频一区二区三区| 国产精品免费视频一区| 国产精品66部| 国产亚洲欧洲997久久综合 | 亚洲欧美日韩电影| 成人免费观看男女羞羞视频| 精品动漫一区二区三区在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美无砖专区一中文字| 一区二区三区影院| 色88888久久久久久影院按摩| 国产精品国产自产拍高清av|