Exemplo n.º 1
0
 void Parse_SyntaxExpressionItem(Context& ctx)
 {
     if (ctx.Token() == TKIdentifier)
     {
         //SyntaxExpressionItem => Identifier 
         ctx.Match(TKIdentifier);
         ctx.Action_PrintName();
     }
     else if (ctx.Token() == TKLiteralChar)
     {
         //SyntaxExpressionItem => LiteralChar 
         ctx.Match(TKLiteralChar);
         ctx.Action_PrintChar();
     }
     else if (ctx.Token() == TKStringLiteral)
     {
         //SyntaxExpressionItem => StringLiteral 
         ctx.Match(TKStringLiteral);
         ctx.Action_PrintString();
     }
     else if (ctx.Token() == TKLeftCurlyBracketCharacter)
     {
         //SyntaxExpressionItem => SyntaxExpressionAction 
         Parse_SyntaxExpressionAction(ctx);
     }
     else
     {
         assert(false);
     }
 }
Exemplo n.º 2
0
void Parse_SyntaxExpressionItem(Context& ctx)
{
    if (ctx.Token() == TKIdentifier)
    {
        //SyntaxExpressionItem => Identifier
        ctx.Match(TKIdentifier);
        ctx.Action_PrintName();
    }
    else if (ctx.Token() == TKLiteralChar)
    {
        //SyntaxExpressionItem => LiteralChar
        ctx.Match(TKLiteralChar);
        ctx.Action_PrintChar();
    }
    else if (ctx.Token() == TKStringLiteral)
    {
        //SyntaxExpressionItem => StringLiteral
        ctx.Match(TKStringLiteral);
        ctx.Action_PrintString();
    }
    else if (ctx.Token() == TKLeftCurlyBracketCharacter)
    {
        //SyntaxExpressionItem => SyntaxExpressionAction
        Parse_SyntaxExpressionAction(ctx);
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
Exemplo n.º 3
0
 void Parse_V(Context& ctx)
 {
     if (ctx.Token() == TKLiteralChar)
     {
         //V => LiteralChar RangeOpt 
         ctx.Match(TKLiteralChar);
         ctx.Action_PrintChar();
         Parse_RangeOpt(ctx);
     }
     else if (ctx.Token() == TKIdentifier)
     {
         //V => Identifier 
         ctx.Match(TKIdentifier);
         ctx.Action_PrintName();
     }
     else if (ctx.Token() == TKKeywordAny)
     {
         //V => KeywordAny 
         ctx.Match(TKKeywordAny);
         ctx.Action_PrintAny();
     }
     else if (ctx.Token() == TKStringLiteral)
     {
         //V => StringLiteral 
         ctx.Match(TKStringLiteral);
         ctx.Action_PrintString();
     }
     else
     {
         assert(false);
     }
 }
Exemplo n.º 4
0
void Parse_V(Context& ctx)
{
    if (ctx.Token() == TKLiteralChar)
    {
        //V => LiteralChar RangeOpt
        ctx.Match(TKLiteralChar);
        ctx.Action_PrintChar();
        Parse_RangeOpt(ctx);
    }
    else if (ctx.Token() == TKIdentifier)
    {
        //V => Identifier
        ctx.Match(TKIdentifier);
        ctx.Action_PrintName();
    }
    else if (ctx.Token() == TKKeywordAny)
    {
        //V => KeywordAny
        ctx.Match(TKKeywordAny);
        ctx.Action_PrintAny();
    }
    else if (ctx.Token() == TKStringLiteral)
    {
        //V => StringLiteral
        ctx.Match(TKStringLiteral);
        ctx.Action_PrintString();
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}