Exemple #1
0
        protected object StatementsBreakForLevel(StatementLevel level)
        {
            Whitespace ();

            ParseRule[] breakRules = _statementBreakRulesAtLevel[(int)level];

            var breakRuleResult = OneOf (breakRules);
            if (breakRuleResult == null)
                return null;

            return breakRuleResult;
        }
Exemple #2
0
        protected object StatementsBreakForLevel(StatementLevel level)
        {
            Whitespace();

            ParseRule[] breakRules = _statementBreakRulesAtLevel[(int)level];

            var breakRuleResult = OneOf(breakRules);

            if (breakRuleResult == null)
            {
                return(null);
            }

            return(breakRuleResult);
        }
Exemple #3
0
		protected List<Parsed.Object> StatementsAtLevel(StatementLevel level)
		{
            // Check for error: Should not be allowed gather dashes within an inner block
            if (level == StatementLevel.InnerBlock) {
                object badGatherDashCount = Parse(GatherDashes);
                if (badGatherDashCount != null) {
                    Error ("You can't use a gather (the dashes) within the { curly braces } context. For multi-line sequences and conditions, you should only use one dash.");
                }
            }
                
			return Interleave<Parsed.Object>(
                Optional (MultilineWhitespace), 
                () => StatementAtLevel (level), 
                untilTerminator: () => StatementsBreakForLevel(level));
		}
Exemple #4
0
        protected object StatementAtLevel(StatementLevel level)
        {            
            ParseRule[] rulesAtLevel = _statementRulesAtLevel[(int)level];

            var statement = OneOf (rulesAtLevel);

            // For some statements, allow them to parse, but create errors, since
            // writers may think they can use the statement, so it's useful to have 
            // the error message.
            if (level == StatementLevel.Top) {
                if( statement is Return ) 
                    Error ("should not have return statement outside of a knot");
            }

            return statement;
        }
Exemple #5
0
        protected List <Parsed.Object> StatementsAtLevel(StatementLevel level)
        {
            // Check for error: Should not be allowed gather dashes within an inner block
            if (level == StatementLevel.InnerBlock)
            {
                object badGatherDashCount = Parse(GatherDashes);
                if (badGatherDashCount != null)
                {
                    Error("You can't use a gather (the dashes) within the { curly braces } context. For multi-line sequences and conditions, you should only use one dash.");
                }
            }

            return(Interleave <Parsed.Object>(
                       Optional(MultilineWhitespace),
                       () => StatementAtLevel(level),
                       untilTerminator: () => StatementsBreakForLevel(level)));
        }
Exemple #6
0
        protected object StatementAtLevel(StatementLevel level)
        {
            ParseRule[] rulesAtLevel = _statementRulesAtLevel[(int)level];

            var statement = OneOf(rulesAtLevel);

            // For some statements, allow them to parse, but create errors, since
            // writers may think they can use the statement, so it's useful to have
            // the error message.
            if (level == StatementLevel.Top)
            {
                if (statement is Return)
                {
                    Error("should not have return statement outside of a knot");
                }
            }

            return(statement);
        }