当前位置: 首页>>代码示例>>C++>>正文


C++ Context::GetLine方法代码示例

本文整理汇总了C++中Context::GetLine方法的典型用法代码示例。如果您正苦于以下问题:C++ Context::GetLine方法的具体用法?C++ Context::GetLine怎么用?C++ Context::GetLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Context的用法示例。


在下文中一共展示了Context::GetLine方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Parse_V

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);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:32,代码来源:Sample1Parser.cpp

示例2: Parse_RangeOpt

void Parse_RangeOpt(Context& ctx)
{
    if (ctx.Token() == TKRangeSeparator)
    {
        //RangeOpt => RangeSeparator LiteralChar
        ctx.Match(TKRangeSeparator);
        ctx.Match(TKLiteralChar);
        ctx.Action_PrintRange();
    }
    else if (ctx.Token() == TKKeywordAny ||
             ctx.Token() == TKPlusCharacter ||
             ctx.Token() == TKLiteralChar ||
             ctx.Token() == TKIdentifier ||
             ctx.Token() == TKSemicolonCharacter ||
             ctx.Token() == TKLeftParenthesisCharacter ||
             ctx.Token() == TKQuestionMarkCharacter ||
             ctx.Token() == TKAsteriskCharacter ||
             ctx.Token() == TKVerticalLineCharacter ||
             ctx.Token() == TKRightParenthesisCharacter ||
             ctx.Token() == TKStringLiteral)
    {
        //RangeOpt => Epsilon
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:28,代码来源:Sample1Parser.cpp

示例3: Parse_SyntaxExpressionItem

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);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:30,代码来源:Sample1Parser.cpp

示例4: Parse_Main

void Parse_Main(Context& ctx)
{
    if (ctx.Token() == TKKeywordModule)
    {
        //Main => ModuleBody
        Parse_ModuleBody(ctx);
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:12,代码来源:Sample1Parser.cpp

示例5: Parse_OrF

void Parse_OrF(Context& ctx)
{
    if (ctx.Token() == TKVerticalLineCharacter)
    {
        //OrF => VerticalLineCharacter F
        ctx.Match(TKVerticalLineCharacter);
        Parse_F(ctx);
        ctx.Action_PrintOr();
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:14,代码来源:Sample1Parser.cpp

示例6: Parse_SyntaxExpressionAction

void Parse_SyntaxExpressionAction(Context& ctx)
{
    if (ctx.Token() == TKLeftCurlyBracketCharacter)
    {
        //SyntaxExpressionAction => LeftCurlyBracketCharacter Identifier RightCurlyBracketCharacter
        ctx.Match(TKLeftCurlyBracketCharacter);
        ctx.Match(TKIdentifier);
        ctx.Action_PrintAction();
        ctx.Match(TKRightCurlyBracketCharacter);
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:15,代码来源:Sample1Parser.cpp

示例7: Parse_InterleaveDeclaration

void Parse_InterleaveDeclaration(Context& ctx)
{
    if (ctx.Token() == TKKeywordInterleave)
    {
        //InterleaveDeclaration => KeywordInterleave Identifier EqualsCharacter TokenExpression SemicolonCharacter
        ctx.Match(TKKeywordInterleave);
        ctx.Match(TKIdentifier);
        ctx.Match(TKEqualsCharacter);
        Parse_TokenExpression(ctx);
        ctx.Match(TKSemicolonCharacter);
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:16,代码来源:Sample1Parser.cpp

示例8: Parse_F

void Parse_F(Context& ctx)
{
    if (ctx.Token() == TKKeywordAny ||
            ctx.Token() == TKLiteralChar ||
            ctx.Token() == TKIdentifier ||
            ctx.Token() == TKLeftParenthesisCharacter ||
            ctx.Token() == TKStringLiteral)
    {
        //F => P OptOperator
        Parse_P(ctx);
        Parse_OptOperator(ctx);
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:17,代码来源:Sample1Parser.cpp

示例9: Parse_LanguageBody

void Parse_LanguageBody(Context& ctx)
{
    if (ctx.Token() == TKKeywordLanguage)
    {
        //LanguageBody => KeywordLanguage Identifier LeftCurlyBracketCharacter Declarations RightCurlyBracketCharacter
        ctx.Match(TKKeywordLanguage);
        ctx.Match(TKIdentifier);
        ctx.Action_LanguageName();
        ctx.Match(TKLeftCurlyBracketCharacter);
        Parse_Declarations(ctx);
        ctx.Match(TKRightCurlyBracketCharacter);
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:17,代码来源:Sample1Parser.cpp

示例10: Parse_T

void Parse_T(Context& ctx)
{
    if (ctx.Token() == TKKeywordAny ||
            ctx.Token() == TKLiteralChar ||
            ctx.Token() == TKIdentifier ||
            ctx.Token() == TKLeftParenthesisCharacter ||
            ctx.Token() == TKStringLiteral)
    {
        //T => F ZeroOrMoreOrF
        Parse_F(ctx);
        Parse_ZeroOrMoreOrF(ctx);
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:17,代码来源:Sample1Parser.cpp

示例11: Parse_SyntaxExpression

void Parse_SyntaxExpression(Context& ctx)
{
    if (ctx.Token() == TKKeywordEmpty ||
            ctx.Token() == TKLiteralChar ||
            ctx.Token() == TKIdentifier ||
            ctx.Token() == TKLeftCurlyBracketCharacter ||
            ctx.Token() == TKStringLiteral)
    {
        //SyntaxExpression => SyntaxExpressionSingle SyntaxExpressionMoreSingle
        Parse_SyntaxExpressionSingle(ctx);
        Parse_SyntaxExpressionMoreSingle(ctx);
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:17,代码来源:Sample1Parser.cpp

示例12: Parse_SyntaxDeclaration

void Parse_SyntaxDeclaration(Context& ctx)
{
    if (ctx.Token() == TKKeywordSyntax)
    {
        //SyntaxDeclaration => KeywordSyntax Identifier EqualsCharacter SyntaxExpression SemicolonCharacter
        ctx.Match(TKKeywordSyntax);
        ctx.Match(TKIdentifier);
        ctx.Action_SyntaxName();
        ctx.Match(TKEqualsCharacter);
        Parse_SyntaxExpression(ctx);
        ctx.Match(TKSemicolonCharacter);
        ctx.Action_TokenEnd();
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:18,代码来源:Sample1Parser.cpp

示例13: Parse_Declarations

void Parse_Declarations(Context& ctx)
{
    if (ctx.Token() == TKKeywordInterleave ||
            ctx.Token() == TKKeywordToken ||
            ctx.Token() == TKKeywordSyntax)
    {
        //Declarations => Declaration Declarations
        Parse_Declaration(ctx);
        Parse_Declarations(ctx);
    }
    else if (ctx.Token() == TKRightCurlyBracketCharacter)
    {
        //Declarations => Epsilon
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:19,代码来源:Sample1Parser.cpp

示例14: Parse_SyntaxExpressionMoreSingle

void Parse_SyntaxExpressionMoreSingle(Context& ctx)
{
    if (ctx.Token() == TKVerticalLineCharacter)
    {
        //SyntaxExpressionMoreSingle => VerticalLineCharacter SyntaxExpressionSingle SyntaxExpressionMoreSingle
        ctx.Match(TKVerticalLineCharacter);
        ctx.Action_CloseProduction();
        Parse_SyntaxExpressionSingle(ctx);
        ctx.Action_CloseProduction();
        Parse_SyntaxExpressionMoreSingle(ctx);
    }
    else if (ctx.Token() == TKSemicolonCharacter)
    {
        //SyntaxExpressionMoreSingle => Epsilon
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:20,代码来源:Sample1Parser.cpp

示例15: Parse_SyntaxExpressionSingleFollow

void Parse_SyntaxExpressionSingleFollow(Context& ctx)
{
    if (ctx.Token() == TKLiteralChar ||
            ctx.Token() == TKIdentifier ||
            ctx.Token() == TKLeftCurlyBracketCharacter ||
            ctx.Token() == TKStringLiteral)
    {
        //SyntaxExpressionSingleFollow => SyntaxExpressionItem SyntaxExpressionSingleFollow
        Parse_SyntaxExpressionItem(ctx);
        Parse_SyntaxExpressionSingleFollow(ctx);
    }
    else if (ctx.Token() == TKSemicolonCharacter ||
             ctx.Token() == TKVerticalLineCharacter)
    {
        //SyntaxExpressionSingleFollow => Epsilon
    }
    else
    {
        throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken);
    }
}
开发者ID:thradams,项目名称:tklgen,代码行数:21,代码来源:Sample1Parser.cpp


注:本文中的Context::GetLine方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。