more WIP for DOM/paste API's
git-svn-id: svn://10.0.0.236/trunk@30308 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -83,7 +83,7 @@ enum eStreamState {eNone,eOnStart,eOnDataAvail,eOnStop};
|
||||
class nsITagStack {
|
||||
public:
|
||||
virtual void Push(PRUnichar* aTag)=0;
|
||||
virtual PRUnichar* Pop(PRUnichar* aTag)=0;
|
||||
virtual PRUnichar* Pop(void)=0;
|
||||
virtual PRUnichar* TagAt(PRUint32 anIndex)=0;
|
||||
virtual PRUint32 GetSize(void)=0;
|
||||
};
|
||||
@@ -147,6 +147,13 @@ class nsIParser : public nsISupports {
|
||||
*/
|
||||
virtual void SetDocumentCharset(nsString& aCharset, nsCharsetSource aSource)=0;
|
||||
|
||||
/**
|
||||
* Call this to get a newly constructed tagstack
|
||||
* @update gess 5/05/99
|
||||
* @param aTagStack is an out parm that will contain your result
|
||||
* @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
|
||||
*/
|
||||
virtual nsresult CreateTagStack(nsITagStack** aTagStack)=0;
|
||||
|
||||
|
||||
/******************************************************************************************
|
||||
@@ -198,23 +205,14 @@ class nsIParser : public nsISupports {
|
||||
#define NS_ERROR_HTMLPARSER_BADURL NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1005)
|
||||
#define NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1006)
|
||||
#define NS_ERROR_HTMLPARSER_INTERRUPTED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1007)
|
||||
#define NS_ERROR_HTMLPARSER_BADTOKENIZER NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
|
||||
#define NS_ERROR_HTMLPARSER_BADATTRIBUTE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1009)
|
||||
#define NS_ERROR_HTMLPARSER_UNRESOLVEDDTD NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1010)
|
||||
#define NS_ERROR_HTMLPARSER_MISPLACED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1011)
|
||||
#define NS_ERROR_HTMLPARSER_BLOCK NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
|
||||
#define NS_ERROR_HTMLPARSER_BADTOKENIZER NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1009)
|
||||
#define NS_ERROR_HTMLPARSER_BADATTRIBUTE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1010)
|
||||
#define NS_ERROR_HTMLPARSER_UNRESOLVEDDTD NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1011)
|
||||
#define NS_ERROR_HTMLPARSER_MISPLACED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1012)
|
||||
#define NS_ERROR_HTMLPARSER_MEMORYFAILURE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1013)
|
||||
|
||||
|
||||
/**
|
||||
* Return codes for parsing routines.
|
||||
* @update vidur 12/11/98
|
||||
*
|
||||
* NS_ERROR_HTMLPARSER_BLOCK indicates that the parser should
|
||||
* block further parsing until it gets a Unblock() method call.
|
||||
* NS_ERROR_HTMLPARSER_CONTINUE indicates that the parser should
|
||||
* continue parsing
|
||||
*/
|
||||
#define NS_ERROR_HTMLPARSER_BLOCK NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
|
||||
#define NS_ERROR_HTMLPARSER_CONTINUE NS_OK
|
||||
#define NS_ERROR_HTMLPARSER_CONTINUE NS_OK
|
||||
|
||||
|
||||
const PRInt32 kEOF = NS_ERROR_HTMLPARSER_EOF;
|
||||
|
||||
@@ -128,13 +128,51 @@ public:
|
||||
nsString nsParser::gHackMetaCharset = "";
|
||||
nsString nsParser::gHackMetaCharsetURL = "";
|
||||
|
||||
//----------------------------------------
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
CSharedParserObjects& GetSharedObjects() {
|
||||
static CSharedParserObjects gSharedParserObjects;
|
||||
return gSharedParserObjects;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************************
|
||||
This class is used as an interface between an external agent (like the DOM) and
|
||||
the parser. It will contain a stack full of tagnames, which is used in our
|
||||
parser/paste API's.
|
||||
**********************************************************************************/
|
||||
|
||||
class nsTagStack : public nsITagStack {
|
||||
public:
|
||||
nsTagStack() : nsITagStack(), mTags(0) {
|
||||
}
|
||||
|
||||
virtual void Push(PRUnichar* aTag){
|
||||
mTags.Push(aTag);
|
||||
}
|
||||
|
||||
virtual PRUnichar* Pop(void){
|
||||
PRUnichar* result=(PRUnichar*)mTags.Pop();
|
||||
return result;
|
||||
}
|
||||
|
||||
virtual PRUnichar* TagAt(PRUint32 anIndex){
|
||||
PRUnichar* result=0;
|
||||
if(anIndex<(PRUint32)mTags.GetSize())
|
||||
result=(PRUnichar*)mTags.ObjectAt(anIndex);
|
||||
return result;
|
||||
}
|
||||
|
||||
virtual PRUint32 GetSize(void){
|
||||
return mTags.GetSize();
|
||||
}
|
||||
|
||||
nsDeque mTags; //will hold a deque of prunichars...
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* default constructor
|
||||
*
|
||||
@@ -1135,32 +1173,15 @@ void nsParser::DebugDumpSource(ostream& aStream) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************************
|
||||
This class is used as an interface between an external agent (like the DOM) and
|
||||
the parser. It will contain a stack full of tagnames, which is used in our
|
||||
parser/paste API's.
|
||||
**********************************************************************************/
|
||||
|
||||
nsTagStack::nsTagStack() : nsITagStack(), mTags(0) {
|
||||
}
|
||||
|
||||
void nsTagStack::Push(PRUnichar* aTag) {
|
||||
mTags.Push(aTag);
|
||||
}
|
||||
|
||||
PRUnichar* nsTagStack::Pop(void) {
|
||||
PRUnichar* result=(PRUnichar*)mTags.Pop();
|
||||
return result;
|
||||
}
|
||||
|
||||
PRUnichar* nsTagStack::TagAt(PRUint32 anIndex) {
|
||||
PRUnichar* result=0;
|
||||
if(anIndex<(PRUint32)mTags.GetSize())
|
||||
result=(PRUnichar*)mTags.ObjectAt(anIndex);
|
||||
return result;
|
||||
}
|
||||
|
||||
PRUint32 nsTagStack::GetSize(void) {
|
||||
return mTags.GetSize();
|
||||
/**
|
||||
* Call this to get a newly constructed tagstack
|
||||
* @update gess 5/05/99
|
||||
* @param aTagStack is an out parm that will contain your result
|
||||
* @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
|
||||
*/
|
||||
nsresult nsParser::CreateTagStack(nsITagStack** aTagStack){
|
||||
*aTagStack=new nsTagStack();
|
||||
if(*aTagStack)
|
||||
return NS_OK;
|
||||
return NS_ERROR_HTMLPARSER_MEMORYFAILURE;
|
||||
}
|
||||
|
||||
@@ -251,6 +251,14 @@ friend class CTokenHandler;
|
||||
*/
|
||||
virtual nsITokenizer* GetTokenizer(void);
|
||||
|
||||
/**
|
||||
* Call this to get a newly constructed tagstack
|
||||
* @update gess 5/05/99
|
||||
* @param aTagStack is an out parm that will contain your result
|
||||
* @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
|
||||
*/
|
||||
virtual nsresult CreateTagStack(nsITagStack** aTagStack);
|
||||
|
||||
/*
|
||||
* The following two should be removed once our Meta Charset work complete
|
||||
*/
|
||||
@@ -346,18 +354,5 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
class nsTagStack : public nsITagStack {
|
||||
public:
|
||||
nsTagStack();
|
||||
virtual void Push(PRUnichar* aTag);
|
||||
virtual PRUnichar* Pop(void);
|
||||
virtual PRUnichar* TagAt(PRUint32 anIndex);
|
||||
virtual PRUint32 GetSize(void);
|
||||
|
||||
nsDeque mTags; //will hold a deque of prunichars...
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user