Wiki

Ticket #334: comma-sep-intrnl-error.patch

File comma-sep-intrnl-error.patch, 1.9 KB (added by hopscc, 11 years ago)
  • Source/CobraParser.cobra

     
    32103210        while true 
    32113211            if isSpaceAgnostic 
    32123212                _spaceAgnostic 
    3213             if .peek is nil 
    3214                 literal = {'RPAREN': ')', 'RBRACKET': ']'} 
    3215                 what = (for t in terminators.split(c'.') where t.trim<>'' get '"[if(literal.containsKey(t), literal[t], t)]"').join(' or ') 
    3216                 .throwError('Expecting "," or [what].') 
    3217             if .peek.which.isOneOf(terminators) 
     3213            if _peekCommaSep(terminators) 
    32183214                .grab 
    32193215                break 
    32203216            if expectSep 
    32213217                .expect(sep) 
    3222             if .peek.which.isOneOf(terminators) 
     3218            if _peekCommaSep(terminators) 
    32233219                .grab 
    32243220                break 
    32253221            if isSpaceAgnostic 
    32263222                _spaceAgnostic 
    3227             if .peek.which.isOneOf(terminators) 
     3223            if _peekCommaSep(terminators) 
    32283224                .grab 
    32293225                break 
    32303226            .newOpStack 
     
    32373233                .delOpStack 
    32383234            expectSep = true 
    32393235        return exprs 
    3240      
     3236 
     3237    def _peekCommaSep(terminators as String) as bool 
     3238        p = .peek 
     3239        if p is nil 
     3240            literal = {'RPAREN': ')', 'RBRACKET': ']'} 
     3241            what = (for t in terminators.split(c'.') where t.trim<>'' get '"[if(literal.containsKey(t), literal[t], t)]"').join(' or ') 
     3242            .throwError('Unexpected end of comma separated expressions - Expecting "," or [what].') 
     3243        return p.which.isOneOf(terminators) 
     3244         
    32413245    def doExpr as AnonymousExpr 
    32423246        """ 
    32433247        Example: 
  • Tests/820-errors/200-expressions/710-unexpected-end.cobra

     
     1# .error. end of comma separated expressions 
     2class Program 
     3 
     4    def main 
     5        variable as int 
     6        streamReader = StreamReader("Something.txt") 
     7        streamReader.getType(variable,