Method: Atomy::Grammar#_delim

Defined in:
lib/atomy/grammar.rb

#_delim(c) ⇒ Object

delim = (wsp “,” wsp | (sp “n” sp)+ &{ current_column >= c })



357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
# File 'lib/atomy/grammar.rb', line 357

def _delim(c)

  _save = self.pos
  while true # choice

    _save1 = self.pos
    while true # sequence
      _tmp = apply(:_wsp)
      unless _tmp
        self.pos = _save1
        break
      end
      _tmp = match_string(",")
      unless _tmp
        self.pos = _save1
        break
      end
      _tmp = apply(:_wsp)
      unless _tmp
        self.pos = _save1
      end
      break
    end # end sequence

    break if _tmp
    self.pos = _save

    _save2 = self.pos
    while true # sequence
      _save3 = self.pos

      _save4 = self.pos
      while true # sequence
        _tmp = apply(:_sp)
        unless _tmp
          self.pos = _save4
          break
        end
        _tmp = match_string("\n")
        unless _tmp
          self.pos = _save4
          break
        end
        _tmp = apply(:_sp)
        unless _tmp
          self.pos = _save4
        end
        break
      end # end sequence

      if _tmp
        while true

          _save5 = self.pos
          while true # sequence
            _tmp = apply(:_sp)
            unless _tmp
              self.pos = _save5
              break
            end
            _tmp = match_string("\n")
            unless _tmp
              self.pos = _save5
              break
            end
            _tmp = apply(:_sp)
            unless _tmp
              self.pos = _save5
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save3
      end
      unless _tmp
        self.pos = _save2
        break
      end
      _save6 = self.pos
      _tmp = begin;  current_column >= c ; end
      self.pos = _save6
      unless _tmp
        self.pos = _save2
      end
      break
    end # end sequence

    break if _tmp
    self.pos = _save
    break
  end # end choice

  set_failed_rule :_delim unless _tmp
  return _tmp
end