mirror of
https://github.com/gnustep/libs-gsweb.git
synced 2025-02-21 19:00:54 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@10746 72102866-910b-0410-8b05-ffd578937521
446 lines
12 KiB
Objective-C
446 lines
12 KiB
Objective-C
/*
|
|
* ANTLR-generated file resulting from grammar htmltag.g
|
|
*
|
|
* Terence Parr, MageLang Institute
|
|
* with John Lilley, Empathy Software
|
|
* and Manuel Guesdon, Software Builders
|
|
* ANTLR Version 2.7.1; 1996,1997,1998,1999,2000
|
|
*/
|
|
|
|
|
|
#include <GSWeb/GSWeb.h>
|
|
|
|
|
|
#include "gsantlr/ANTLRCommon.h"
|
|
#include "GSWHTMLAttrParser.h"
|
|
#include "GSWHTMLAttrTokenTypes.h"
|
|
#include "gsantlr/ANTLRNoViableAltException.h"
|
|
#include "gsantlr/ANTLRBitSet.h"
|
|
#include "gsantlr/ANTLRAST.h"
|
|
#include "gsantlr/ANTLRASTPair.h"
|
|
@implementation GSWHTMLAttrParser
|
|
-(id)initWithTokenBuffer:(ANTLRTokenBuffer *)_buffer maxK:(int)_k
|
|
{
|
|
//LOGObjectFnStart();
|
|
self=[super initWithTokenBuffer:_buffer maxK:_k];
|
|
[self setTokenNames:GSWHTMLAttrParser___tokenNames];
|
|
//LOGObjectFnStop();
|
|
return self;
|
|
}
|
|
|
|
-(id)initWithTokenBuffer:(ANTLRTokenBuffer *)_buffer
|
|
{
|
|
//LOGObjectFnStart();
|
|
self=[super initWithTokenBuffer:_buffer maxK:5];
|
|
[self setTokenNames:GSWHTMLAttrParser___tokenNames];
|
|
//LOGObjectFnStop();
|
|
return self;
|
|
}
|
|
|
|
-(id)initWithTokenizer:(ANTLRDefTokenizer)_lexer maxK:(int)_k
|
|
{
|
|
//LOGObjectFnStart();
|
|
self=[super initWithTokenizer:_lexer maxK:_k];
|
|
[self setTokenNames:GSWHTMLAttrParser___tokenNames];
|
|
//LOGObjectFnStop();
|
|
return self;
|
|
}
|
|
|
|
-(id)initWithTokenizer:(ANTLRDefTokenizer)_lexer
|
|
{
|
|
//LOGObjectFnStart();
|
|
self=[self initWithTokenizer:_lexer maxK:5];
|
|
[self setTokenNames:GSWHTMLAttrParser___tokenNames];
|
|
//LOGObjectFnStop();
|
|
return self;
|
|
}
|
|
|
|
-(void) tag
|
|
{
|
|
|
|
ANTLRASTPair* currentAST=[[ANTLRASTPair new] autorelease];
|
|
ANTLRDefAST tag_AST = ANTLRnullAST;
|
|
ANTLRDefToken tagNameLocal = nil;
|
|
ANTLRDefAST tagNameLocal_AST = ANTLRnullAST;
|
|
|
|
DESTROY(attributes);
|
|
DESTROY(tagName);
|
|
DESTROY(errors);
|
|
DESTROY(warnings);
|
|
attributes=[NSMutableDictionary new];
|
|
|
|
|
|
//LOGObjectFnStart();
|
|
ASSIGN(returnAST,ANTLRnullAST);
|
|
NS_DURING // for error handling
|
|
{
|
|
tagNameLocal = [self LT:1];
|
|
{
|
|
tagNameLocal_AST = [astFactory create:tagNameLocal];
|
|
[astFactory addASTChild:tagNameLocal_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_IDENT];
|
|
NSDebugMLLog(@"template",@"tagNameLocal:%@",[tagNameLocal_AST text]); ASSIGN(tagName,[tagNameLocal_AST text]); NSDebugMLLog(@"template",@"Found tagName=[%@]",tagName);
|
|
{
|
|
if (([self LA:1]==ANTLRToken_EOF_TYPE||[self LA:1]==GSWHTMLAttrTokenType_IDENT||[self LA:1]==GSWHTMLAttrTokenType_WS) && ([GSWHTMLAttrParser___tokenSet_0 isMember:[self LA:2]]))
|
|
{
|
|
{
|
|
do
|
|
{
|
|
if (([self LA:1]==GSWHTMLAttrTokenType_IDENT||[self LA:1]==GSWHTMLAttrTokenType_WS))
|
|
{
|
|
{
|
|
do
|
|
{
|
|
if (([self LA:1]==GSWHTMLAttrTokenType_WS))
|
|
{
|
|
{
|
|
ANTLRDefAST tmp1_AST = ANTLRnullAST;
|
|
tmp1_AST = [astFactory create:[self LT:1]];
|
|
[astFactory addASTChild:tmp1_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_WS];
|
|
}
|
|
else
|
|
{
|
|
goto _loop5;
|
|
}
|
|
|
|
} while (YES);
|
|
_loop5:;
|
|
}
|
|
{
|
|
[self attr];
|
|
[astFactory addASTChild:returnAST in:currentAST];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
goto _loop7;
|
|
}
|
|
|
|
} while (YES);
|
|
_loop7:;
|
|
}
|
|
}
|
|
else if (([self LA:1]==ANTLRToken_EOF_TYPE) && ([self LA:2]==ANTLRToken_EOF_TYPE))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
[ANTLRNoViableAltException raiseWithToken:[self LT:1]];
|
|
}
|
|
|
|
}
|
|
tag_AST = [currentAST root];
|
|
}
|
|
NS_HANDLER
|
|
{
|
|
[self reportErrorWithException:localException];
|
|
[self consume];
|
|
[self consumeUntilTokenBitSet:GSWHTMLAttrParser___tokenSet_1];
|
|
}
|
|
NS_ENDHANDLER;
|
|
ASSIGN(returnAST,tag_AST);
|
|
//LOGObjectFnStop();
|
|
}
|
|
|
|
-(void) attr
|
|
{
|
|
|
|
ANTLRASTPair* currentAST=[[ANTLRASTPair new] autorelease];
|
|
ANTLRDefAST attr_AST = ANTLRnullAST;
|
|
ANTLRDefToken attrName = nil;
|
|
ANTLRDefAST attrName_AST = ANTLRnullAST;
|
|
|
|
//LOGObjectFnStart();
|
|
ASSIGN(returnAST,ANTLRnullAST);
|
|
NS_DURING // for error handling
|
|
{
|
|
attrName = [self LT:1];
|
|
{
|
|
attrName_AST = [astFactory create:attrName];
|
|
[astFactory addASTChild:attrName_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_IDENT];
|
|
DESTROY(currentValue); currentAttrName=[[attrName text]lowercaseString];
|
|
NSDebugMLLog(@"template",@"Found currentAttrName=[%@]",currentAttrName);
|
|
|
|
{
|
|
if (([GSWHTMLAttrParser___tokenSet_0 isMember:[self LA:1]]) && ([GSWHTMLAttrParser___tokenSet_2 isMember:[self LA:2]]))
|
|
{
|
|
{
|
|
do
|
|
{
|
|
if (([self LA:1]==GSWHTMLAttrTokenType_WS) && ([GSWHTMLAttrParser___tokenSet_0 isMember:[self LA:2]]))
|
|
{
|
|
{
|
|
ANTLRDefAST tmp2_AST = ANTLRnullAST;
|
|
tmp2_AST = [astFactory create:[self LT:1]];
|
|
[astFactory addASTChild:tmp2_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_WS];
|
|
}
|
|
else
|
|
{
|
|
goto _loop11;
|
|
}
|
|
|
|
} while (YES);
|
|
_loop11:;
|
|
}
|
|
}
|
|
else if (([GSWHTMLAttrParser___tokenSet_0 isMember:[self LA:1]]) && ([GSWHTMLAttrParser___tokenSet_2 isMember:[self LA:2]]))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
[ANTLRNoViableAltException raiseWithToken:[self LT:1]];
|
|
}
|
|
|
|
}
|
|
{
|
|
switch ( [self LA:1])
|
|
{
|
|
case GSWHTMLAttrTokenType_ASSIGN:
|
|
{
|
|
{
|
|
ANTLRDefAST tmp3_AST = ANTLRnullAST;
|
|
tmp3_AST = [astFactory create:[self LT:1]];
|
|
[astFactory addASTChild:tmp3_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_ASSIGN];
|
|
{
|
|
if (([GSWHTMLAttrParser___tokenSet_3 isMember:[self LA:1]]) && ([GSWHTMLAttrParser___tokenSet_4 isMember:[self LA:2]]))
|
|
{
|
|
{
|
|
do
|
|
{
|
|
if (([self LA:1]==GSWHTMLAttrTokenType_WS))
|
|
{
|
|
{
|
|
ANTLRDefAST tmp4_AST = ANTLRnullAST;
|
|
tmp4_AST = [astFactory create:[self LT:1]];
|
|
[astFactory addASTChild:tmp4_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_WS];
|
|
}
|
|
else
|
|
{
|
|
goto _loop15;
|
|
}
|
|
|
|
} while (YES);
|
|
_loop15:;
|
|
}
|
|
}
|
|
else if (([GSWHTMLAttrParser___tokenSet_5 isMember:[self LA:1]]) && ([self LA:2]==ANTLRToken_EOF_TYPE||[self LA:2]==GSWHTMLAttrTokenType_IDENT||[self LA:2]==GSWHTMLAttrTokenType_WS))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
[ANTLRNoViableAltException raiseWithToken:[self LT:1]];
|
|
}
|
|
|
|
}
|
|
{
|
|
[self mvalue];
|
|
[astFactory addASTChild:returnAST in:currentAST];
|
|
}
|
|
break;
|
|
}
|
|
case ANTLRToken_EOF_TYPE:
|
|
case GSWHTMLAttrTokenType_IDENT:
|
|
case GSWHTMLAttrTokenType_WS:
|
|
{
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
[ANTLRNoViableAltException raiseWithToken:[self LT:1]];
|
|
}
|
|
}
|
|
}
|
|
NSDebugMLLog(@"template",@"Add currentValue=[%@]",currentValue); [attributes setObject:currentValue forKey:currentAttrName];
|
|
attr_AST = [currentAST root];
|
|
}
|
|
NS_HANDLER
|
|
{
|
|
[self reportErrorWithException:localException];
|
|
[self consume];
|
|
[self consumeUntilTokenBitSet:GSWHTMLAttrParser___tokenSet_6];
|
|
}
|
|
NS_ENDHANDLER;
|
|
ASSIGN(returnAST,attr_AST);
|
|
//LOGObjectFnStop();
|
|
}
|
|
|
|
-(void) mvalue
|
|
{
|
|
|
|
ANTLRASTPair* currentAST=[[ANTLRASTPair new] autorelease];
|
|
ANTLRDefAST mvalue_AST = ANTLRnullAST;
|
|
ANTLRDefToken intValue = nil;
|
|
ANTLRDefAST intValue_AST = ANTLRnullAST;
|
|
ANTLRDefToken stringValue = nil;
|
|
ANTLRDefAST stringValue_AST = ANTLRnullAST;
|
|
ANTLRDefToken hexNumValue = nil;
|
|
ANTLRDefAST hexNumValue_AST = ANTLRnullAST;
|
|
ANTLRDefToken pcValue = nil;
|
|
ANTLRDefAST pcValue_AST = ANTLRnullAST;
|
|
ANTLRDefToken identValue = nil;
|
|
ANTLRDefAST identValue_AST = ANTLRnullAST;
|
|
|
|
//LOGObjectFnStart();
|
|
ASSIGN(returnAST,ANTLRnullAST);
|
|
NS_DURING // for error handling
|
|
{
|
|
{
|
|
switch ( [self LA:1])
|
|
{
|
|
case GSWHTMLAttrTokenType_INT:
|
|
{
|
|
intValue = [self LT:1];
|
|
{
|
|
intValue_AST = [astFactory create:intValue];
|
|
[astFactory addASTChild:intValue_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_INT];
|
|
ASSIGN(currentValue,[NSNumber valueFromString:[intValue text]]); NSDebugMLLog(@"template",@"currentValue=[%@]",currentValue);
|
|
break;
|
|
}
|
|
case GSWHTMLAttrTokenType_STRING:
|
|
{
|
|
stringValue = [self LT:1];
|
|
{
|
|
stringValue_AST = [astFactory create:stringValue];
|
|
[astFactory addASTChild:stringValue_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_STRING];
|
|
ASSIGN(currentValue,[stringValue text]);
|
|
if ([currentValue isQuotedWith:@"\""])
|
|
{
|
|
ASSIGN(currentValue,[currentValue stringWithoutQuote:@"\""]);
|
|
};
|
|
NSDebugMLLog(@"template",@"currentValue=[%@]",currentValue);
|
|
|
|
break;
|
|
}
|
|
case GSWHTMLAttrTokenType_HEXNUM:
|
|
{
|
|
hexNumValue = [self LT:1];
|
|
{
|
|
hexNumValue_AST = [astFactory create:hexNumValue];
|
|
[astFactory addASTChild:hexNumValue_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_HEXNUM];
|
|
ASSIGN(currentValue,[NSNumber valueFromString:[hexNumValue text]]); NSDebugMLLog(@"template",@"currentValue=[%@]",currentValue);
|
|
break;
|
|
}
|
|
case GSWHTMLAttrTokenType_INTPC:
|
|
{
|
|
pcValue = [self LT:1];
|
|
{
|
|
pcValue_AST = [astFactory create:pcValue];
|
|
[astFactory addASTChild:pcValue_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_INTPC];
|
|
ASSIGN(currentValue,[pcValue text]); NSDebugMLLog(@"template",@"currentValue=[%@]",currentValue);
|
|
break;
|
|
}
|
|
case GSWHTMLAttrTokenType_IDENT:
|
|
{
|
|
identValue = [self LT:1];
|
|
{
|
|
identValue_AST = [astFactory create:identValue];
|
|
[astFactory addASTChild:identValue_AST in:currentAST];
|
|
}
|
|
[self matchTokenType:GSWHTMLAttrTokenType_IDENT];
|
|
ASSIGN(currentValue,[identValue text]); NSDebugMLLog(@"template",@"currentValue=[%@]",currentValue);
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
[ANTLRNoViableAltException raiseWithToken:[self LT:1]];
|
|
}
|
|
}
|
|
}
|
|
mvalue_AST = [currentAST root];
|
|
}
|
|
NS_HANDLER
|
|
{
|
|
[self reportErrorWithException:localException];
|
|
[self consume];
|
|
[self consumeUntilTokenBitSet:GSWHTMLAttrParser___tokenSet_6];
|
|
}
|
|
NS_ENDHANDLER;
|
|
ASSIGN(returnAST,mvalue_AST);
|
|
//LOGObjectFnStop();
|
|
}
|
|
|
|
static CONST NSString* GSWHTMLAttrParser___tokenNames[] = {
|
|
@"<0>",
|
|
@"EOF",
|
|
@"<2>",
|
|
@"NULL_TREE_LOOKAHEAD",
|
|
@"IDENT",
|
|
@"WS",
|
|
@"ASSIGN",
|
|
@"INT",
|
|
@"STRING",
|
|
@"HEXNUM",
|
|
@"INTPC",
|
|
@"POINT",
|
|
@"PCINT",
|
|
@"HEXINT",
|
|
@"DIGIT",
|
|
@"HEXDIGIT",
|
|
@"LCLETTER",
|
|
@"LETTER",
|
|
0
|
|
};
|
|
|
|
CONST unsigned long GSWHTMLAttrParser___tokenSet_0_data_[] = { 114UL, 0UL, 0UL, 0UL };
|
|
static ANTLRBitSet* GSWHTMLAttrParser___tokenSet_0=nil;
|
|
CONST unsigned long GSWHTMLAttrParser___tokenSet_1_data_[] = { 2UL, 0UL, 0UL, 0UL };
|
|
static ANTLRBitSet* GSWHTMLAttrParser___tokenSet_1=nil;
|
|
CONST unsigned long GSWHTMLAttrParser___tokenSet_2_data_[] = { 2034UL, 0UL, 0UL, 0UL };
|
|
static ANTLRBitSet* GSWHTMLAttrParser___tokenSet_2=nil;
|
|
CONST unsigned long GSWHTMLAttrParser___tokenSet_3_data_[] = { 1968UL, 0UL, 0UL, 0UL };
|
|
static ANTLRBitSet* GSWHTMLAttrParser___tokenSet_3=nil;
|
|
CONST unsigned long GSWHTMLAttrParser___tokenSet_4_data_[] = { 1970UL, 0UL, 0UL, 0UL };
|
|
static ANTLRBitSet* GSWHTMLAttrParser___tokenSet_4=nil;
|
|
CONST unsigned long GSWHTMLAttrParser___tokenSet_5_data_[] = { 1936UL, 0UL, 0UL, 0UL };
|
|
static ANTLRBitSet* GSWHTMLAttrParser___tokenSet_5=nil;
|
|
CONST unsigned long GSWHTMLAttrParser___tokenSet_6_data_[] = { 50UL, 0UL, 0UL, 0UL };
|
|
static ANTLRBitSet* GSWHTMLAttrParser___tokenSet_6=nil;
|
|
+(void)initialize
|
|
{
|
|
if (!GSWHTMLAttrParser___tokenSet_0)
|
|
GSWHTMLAttrParser___tokenSet_0=[[ANTLRBitSet bitSetWithULongBits:GSWHTMLAttrParser___tokenSet_0_data_ length:8] retain];
|
|
if (!GSWHTMLAttrParser___tokenSet_1)
|
|
GSWHTMLAttrParser___tokenSet_1=[[ANTLRBitSet bitSetWithULongBits:GSWHTMLAttrParser___tokenSet_1_data_ length:8] retain];
|
|
if (!GSWHTMLAttrParser___tokenSet_2)
|
|
GSWHTMLAttrParser___tokenSet_2=[[ANTLRBitSet bitSetWithULongBits:GSWHTMLAttrParser___tokenSet_2_data_ length:8] retain];
|
|
if (!GSWHTMLAttrParser___tokenSet_3)
|
|
GSWHTMLAttrParser___tokenSet_3=[[ANTLRBitSet bitSetWithULongBits:GSWHTMLAttrParser___tokenSet_3_data_ length:8] retain];
|
|
if (!GSWHTMLAttrParser___tokenSet_4)
|
|
GSWHTMLAttrParser___tokenSet_4=[[ANTLRBitSet bitSetWithULongBits:GSWHTMLAttrParser___tokenSet_4_data_ length:8] retain];
|
|
if (!GSWHTMLAttrParser___tokenSet_5)
|
|
GSWHTMLAttrParser___tokenSet_5=[[ANTLRBitSet bitSetWithULongBits:GSWHTMLAttrParser___tokenSet_5_data_ length:8] retain];
|
|
if (!GSWHTMLAttrParser___tokenSet_6)
|
|
GSWHTMLAttrParser___tokenSet_6=[[ANTLRBitSet bitSetWithULongBits:GSWHTMLAttrParser___tokenSet_6_data_ length:8] retain];
|
|
}
|
|
+(void)dealloc
|
|
{
|
|
DESTROY(GSWHTMLAttrParser___tokenSet_0);
|
|
DESTROY(GSWHTMLAttrParser___tokenSet_1);
|
|
DESTROY(GSWHTMLAttrParser___tokenSet_2);
|
|
DESTROY(GSWHTMLAttrParser___tokenSet_3);
|
|
DESTROY(GSWHTMLAttrParser___tokenSet_4);
|
|
DESTROY(GSWHTMLAttrParser___tokenSet_5);
|
|
DESTROY(GSWHTMLAttrParser___tokenSet_6);
|
|
[[self superclass] dealloc];
|
|
}
|
|
@end
|
|
|