added DTD and propagation capabilities; dynamic entities, containers, token handlers

This commit is contained in:
rickg
1998-04-22 18:32:49 +00:00
parent 73dbeca662
commit 12ed2c58bf
60 changed files with 5726 additions and 836 deletions

View File

@@ -0,0 +1,637 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/**
* MODULE NOTES:
* @update gess 4/1/98
*
*/
#include "nsTokenHandler.h"
#include "nsHTMLParser.h"
#include "nsHTMLTokens.h"
#include "nsDebug.h"
static const char* kNullParserGiven = "Error: Null parser given as argument";
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CTokenHandler::CTokenHandler(eHTMLTokenTypes aType) {
mType=aType;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CTokenHandler::~CTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
eHTMLTokenTypes CTokenHandler::GetTokenType(void){
return mType;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
PRBool result=PR_FALSE;
if(aParser){
result=PR_TRUE;
}
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CStartTokenHandler::CStartTokenHandler() : CTokenHandler(eToken_start) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CStartTokenHandler::~CStartTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CStartTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleStartToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CStartTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CEndTokenHandler::CEndTokenHandler(): CTokenHandler(eToken_end) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CEndTokenHandler::~CEndTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CEndTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleEndToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CEndTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CCommentTokenHandler::CCommentTokenHandler() : CTokenHandler(eToken_comment) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CCommentTokenHandler::~CCommentTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CCommentTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleCommentToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CCommentTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CEntityTokenHandler::CEntityTokenHandler() : CTokenHandler(eToken_entity) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CEntityTokenHandler::~CEntityTokenHandler() {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CEntityTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleEntityToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CEntityTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CWhitespaceTokenHandler::CWhitespaceTokenHandler() : CTokenHandler(eToken_whitespace) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CWhitespaceTokenHandler::~CWhitespaceTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CWhitespaceTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleWhitespaceToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CWhitespaceTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CNewlineTokenHandler::CNewlineTokenHandler() : CTokenHandler(eToken_newline) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CNewlineTokenHandler::~CNewlineTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CNewlineTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleNewlineToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CNewlineTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CTextTokenHandler::CTextTokenHandler() : CTokenHandler(eToken_text) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CTextTokenHandler::~CTextTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CTextTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleTextToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CTextTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CAttributeTokenHandler::CAttributeTokenHandler() : CTokenHandler(eToken_attribute) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CAttributeTokenHandler::~CAttributeTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CAttributeTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleAttributeToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CAttributeTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CScriptTokenHandler::CScriptTokenHandler() : CTokenHandler(eToken_script) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CScriptTokenHandler::~CScriptTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CScriptTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleScriptToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CScriptTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CStyleTokenHandler::CStyleTokenHandler() : CTokenHandler(eToken_style) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CStyleTokenHandler::~CStyleTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CStyleTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleStyleToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CStyleTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CSkippedContentTokenHandler::CSkippedContentTokenHandler() : CTokenHandler(eToken_skippedcontent) {
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
CSkippedContentTokenHandler::~CSkippedContentTokenHandler(){
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CSkippedContentTokenHandler::operator()(CToken* aToken,nsHTMLParser* aParser){
NS_ASSERTION(0!=aParser,kNullParserGiven);
if(aParser){
return aParser->HandleSkippedContentToken(aToken);
}
return PR_FALSE;
}
/**-------------------------------------------------------
*
*
* @update gess 4/2/98
* @param
* @return
*------------------------------------------------------*/
PRBool CSkippedContentTokenHandler::CanHandle(eHTMLTokenTypes aType){
PRBool result=PR_FALSE;
return result;
}