1
/* markup_stats.c - parabix demo program
2
Copyright (c) 2007, Robert D. Cameron.
3
Licensed to the public under the Open Software License 3.0.
4
Licensed to International Characters, Inc., under the Academic
13
#include <sys/types.h>
22
#define TEMPLATED_SIMD_LIB
23
#define VALIDATION_MODE OFF
25
//#include "src/ilax.h"
26
#include "src/engine.h"
32
#include "src/xmlmodel.h"
33
#include "src/xml_error.h"
34
#include "src/bitplex.h"
35
#include "src/byteplex.h"
36
#include "src/xmldecl.h"
37
#include "src/bitlex.h"
40
#include "src/xmlmodel.c"
41
#include "src/xml_error.c"
42
#include "src/bitplex.c"
43
#include "src/byteplex.c"
44
#include "src/xmldecl.c"
45
#include "src/bitlex.c"
46
#include "src/engine.c"
47
#include "src/symtab.c"
49
/* Global declarations of parsing engine. */
50
Parser_Interface<UTF_8> * parser;
56
int interior_count = 0;
60
inline void Parser_Interface<UTF_8>::Comment_action(unsigned char * item, int lgth) {
64
inline void Parser_Interface<UTF_8>::CDATA_start_action(unsigned char * CDATA_ptr){
68
inline void Parser_Interface<UTF_8>::CDATA_end_action(unsigned char * CDATA_end_ptr) {
72
inline void Parser_Interface<UTF_8>::PI_action(unsigned char * item, int lgth) {
76
inline void Parser_Interface<UTF_8>::EmptyElement_action(unsigned char * item, int lgth) {
80
inline void Parser_Interface<UTF_8>::StartTag_action(unsigned char * item, int lgth) {
85
inline void Parser_Interface<UTF_8>::EndTag_action(unsigned char * item, int lgth) {
90
inline void Parser_Interface<UTF_8>::Error_action(unsigned char * item, int lgth) {
94
inline void Parser_Interface<UTF_8>::Text_action(unsigned char * item, int lgth, bool more) {
99
inline void Parser_Interface<UTF_8>::Reference_action(unsigned char * item, int lgth) {
104
inline void Parser_Interface<UTF_8>::ElementName_action(unsigned char * item, int lgth) {
108
inline void Parser_Interface<UTF_8>::PI_Target_action(unsigned char * item, int lgth) {
112
inline void Parser_Interface<UTF_8>::AttributeValue_action(unsigned char * name, int name_lgth,
113
unsigned char * val, int val_lgth) {
117
inline void Parser_Interface<UTF_8>::Namespace_action(unsigned char * name, int name_lgth,
118
unsigned char * URI, int URI_lgth) {
123
void Parser_Interface<UTF_8>::FinalizeBuffer_action() {
128
inline void Parser_Interface<UTF_8>::DocumentStart_action() {
132
inline void Parser_Interface<UTF_8>::DocumentEnd_action() {
136
inline void Parser_Interface<UTF_8>::Doctype_action(unsigned char * item, int lgth) {
140
inline void Parser_Interface<UTF_8>::PEReference_action(unsigned char * item, int lgth) {
145
inline void Parser_Interface<UTF_8>::ExtSubsetDecl_action(unsigned char * item, int lgth) {
149
inline void Parser_Interface<UTF_8>::Prolog_action(unsigned char * item, int lgth) {
154
void initXML(struct TestData *td) {
157
void releaseXML(struct TestData *td) {
161
void parseXML(struct TestData *td, unsigned long iter) {
166
while ((td->xml[i] == ' ')||(td->xml[i] == '\r')||(td->xml[i] == '\n')||(td->xml[i] == '\t')) i++;
167
if ((td->xml[i]=='<')&&(td->xml[i+1]=='?')) {
168
for (i+=2;((td->xml[i]!='?')||(td->xml[i+1]!='>'))&&(td->xml[i]);i++);
169
for (i+=2;(td->xml[i] == ' ')||(td->xml[i] == '\r')||(td->xml[i] == '\n')||(td->xml[i] == '\t');i++);
170
if ((td->xml[i]=='<')&&(td->xml[i+1]=='?')) {
171
for (i+=2;((td->xml[i]!='?')||(td->xml[i+1]!='>'))&&(td->xml[i]);i++);
172
for (i+=2;(td->xml[i] == ' ')||(td->xml[i] == '\r')||(td->xml[i] == '\n')||(td->xml[i] == '\t');i++);
177
e->AnalyzeSignature((unsigned char*)"<?xml");
180
parser = Parser_Interface<UTF_8>::ParserFactory("/tmp/parabix.test");//td->xml+i, td->xmllen-i, e, m);
181
parser->Parse_Prolog();
182
parser->Parse_DocumentContent();
183
// parser->~Parser_Interface();
191
int main(int argc, char *argv[]) {
192
return Test(argc,argv);