Class: RDoc::RD::BlockParser
Overview
RD format parser for headings, paragraphs, lists, verbatim sections that exist as blocks.
Constant Summary
collapse
- MARK_TO_LEVEL =
{
'=' => 1,
'==' => 2,
'===' => 3,
'====' => 4,
'+' => 5,
'++' => 6,
}
- Racc_arg =
[
racc_action_table,
racc_action_check,
racc_action_default,
racc_action_pointer,
racc_goto_table,
racc_goto_check,
racc_goto_default,
racc_goto_pointer,
racc_nt_base,
racc_reduce_table,
racc_token_table,
racc_shift_n,
racc_reduce_n,
racc_use_result_var ]
- Racc_token_to_s_table =
[
"$end",
"error",
"DUMMY",
"ITEMLISTLINE",
"ENUMLISTLINE",
"DESCLISTLINE",
"METHODLISTLINE",
"STRINGLINE",
"WHITELINE",
"SUBTREE",
"HEADLINE",
"INCLUDE",
"INDENT",
"DEDENT",
"$start",
"document",
"blocks",
"block",
"textblock",
"verbatim",
"lists",
"headline",
"include",
"textblockcontent",
"verbatimcontent",
"verbatim_after_lists",
"list",
"itemlist",
"enumlist",
"desclist",
"methodlist",
"lists2",
"itemlistitems",
"itemlistitem",
"first_textblock_in_itemlist",
"other_blocks_in_list",
"enumlistitems",
"enumlistitem",
"first_textblock_in_enumlist",
"desclistitems",
"desclistitem",
"description_part",
"methodlistitems",
"methodlistitem",
"whitelines",
"blocks_in_list",
"block_in_list",
"whitelines2" ]
- Racc_debug_parser =
false
Constants inherited
from Racc::Parser
Racc::Parser::Racc_Runtime_Core_Version_R, Racc::Parser::Racc_Runtime_Version
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#_reduce_1(val, _values, result) ⇒ Object
-
#_reduce_10(val, _values, result) ⇒ Object
-
#_reduce_11(val, _values, result) ⇒ Object
-
#_reduce_12(val, _values, result) ⇒ Object
-
#_reduce_13(val, _values, result) ⇒ Object
-
#_reduce_14(val, _values, result) ⇒ Object
-
#_reduce_15(val, _values, result) ⇒ Object
-
#_reduce_16(val, _values, result) ⇒ Object
-
#_reduce_17(val, _values, result) ⇒ Object
-
#_reduce_18(val, _values, result) ⇒ Object
-
#_reduce_19(val, _values, result) ⇒ Object
-
#_reduce_2(val, _values, result) ⇒ Object
-
#_reduce_20(val, _values, result) ⇒ Object
-
#_reduce_21(val, _values, result) ⇒ Object
-
#_reduce_22(val, _values, result) ⇒ Object
-
#_reduce_27(val, _values, result) ⇒ Object
-
#_reduce_28(val, _values, result) ⇒ Object
-
#_reduce_29(val, _values, result) ⇒ Object
-
#_reduce_3(val, _values, result) ⇒ Object
-
#_reduce_30(val, _values, result) ⇒ Object
-
#_reduce_31(val, _values, result) ⇒ Object
-
#_reduce_32(val, _values, result) ⇒ Object
-
#_reduce_33(val, _values, result) ⇒ Object
-
#_reduce_34(val, _values, result) ⇒ Object
-
#_reduce_35(val, _values, result) ⇒ Object
-
#_reduce_36(val, _values, result) ⇒ Object
-
#_reduce_37(val, _values, result) ⇒ Object
-
#_reduce_38(val, _values, result) ⇒ Object
-
#_reduce_39(val, _values, result) ⇒ Object
-
#_reduce_4(val, _values, result) ⇒ Object
-
#_reduce_40(val, _values, result) ⇒ Object
-
#_reduce_41(val, _values, result) ⇒ Object
-
#_reduce_42(val, _values, result) ⇒ Object
-
#_reduce_43(val, _values, result) ⇒ Object
-
#_reduce_44(val, _values, result) ⇒ Object
-
#_reduce_45(val, _values, result) ⇒ Object
-
#_reduce_46(val, _values, result) ⇒ Object
-
#_reduce_47(val, _values, result) ⇒ Object
-
#_reduce_48(val, _values, result) ⇒ Object
-
#_reduce_49(val, _values, result) ⇒ Object
-
#_reduce_5(val, _values, result) ⇒ Object
-
#_reduce_50(val, _values, result) ⇒ Object
-
#_reduce_51(val, _values, result) ⇒ Object
-
#_reduce_52(val, _values, result) ⇒ Object
-
#_reduce_54(val, _values, result) ⇒ Object
-
#_reduce_55(val, _values, result) ⇒ Object
-
#_reduce_57(val, _values, result) ⇒ Object
-
#_reduce_6(val, _values, result) ⇒ Object
-
#_reduce_62(val, _values, result) ⇒ Object
-
#_reduce_63(val, _values, result) ⇒ Object
-
#_reduce_64(val, _values, result) ⇒ Object
-
#_reduce_65(val, _values, result) ⇒ Object
-
#_reduce_66(val, _values, result) ⇒ Object
-
#_reduce_67(val, _values, result) ⇒ Object
-
#_reduce_68(val, _values, result) ⇒ Object
-
#_reduce_69(val, _values, result) ⇒ Object
-
#_reduce_71(val, _values, result) ⇒ Object
-
#_reduce_72(val, _values, result) ⇒ Object
-
#_reduce_8(val, _values, result) ⇒ Object
-
#_reduce_9(val, _values, result) ⇒ Object
-
#_reduce_none(val, _values, result) ⇒ Object
-
#add_footnote(content) ⇒ Object
Adds footnote content
to the document.
-
#add_label(label) ⇒ Object
Adds label label
to the document.
-
#content(values) ⇒ Object
Retrieves the content of values
as a single String.
-
#initialize ⇒ BlockParser
constructor
Creates a new RDoc::RD::BlockParser.
-
#line_index ⇒ Object
-
#next_token ⇒ Object
Returns the next token from the document.
-
#on_error(et, ev, _values) ⇒ Object
Raises a ParseError when invalid formatting is found.
-
#paragraph(value) ⇒ Object
Creates a paragraph for value
.
-
#parse(src) ⇒ Object
Parses src
and returns an RDoc::Markup::Document.
#_racc_do_parse_rb, #_racc_do_reduce, #_racc_evalact, #_racc_init_sysvars, #_racc_setup, #_racc_yyparse_rb, #racc_accept, #racc_e_pop, #racc_next_state, #racc_print_stacks, #racc_print_states, #racc_read_token, #racc_reduce, racc_runtime_type, #racc_shift, #racc_token2str, #token_to_str, #yyaccept, #yyerrok, #yyerror
Constructor Details
Creates a new RDoc::RD::BlockParser. Use #parse to parse an rd-format document.
695
696
697
698
699
700
701
702
|
# File 'lib/rdoc/rd/block_parser.rb', line 695
def initialize
@inline_parser = RDoc::RD::InlineParser.new self
@include_path = []
= []
@labels = {}
end
|
Instance Attribute Details
Footnotes for this document
679
680
681
|
# File 'lib/rdoc/rd/block_parser.rb', line 679
def
end
|
#include_path ⇒ Object
Path to find included files in
689
690
691
|
# File 'lib/rdoc/rd/block_parser.rb', line 689
def include_path
@include_path
end
|
#labels ⇒ Object
Labels for items in this document
684
685
686
|
# File 'lib/rdoc/rd/block_parser.rb', line 684
def labels
@labels
end
|
Instance Method Details
#_reduce_1(val, _values, result) ⇒ Object
1330
1331
1332
1333
|
# File 'lib/rdoc/rd/block_parser.rb', line 1330
def _reduce_1(val, _values, result)
result = RDoc::Markup::Document.new(*val[0])
result
end
|
#_reduce_10(val, _values, result) ⇒ Object
1372
1373
1374
1375
|
# File 'lib/rdoc/rd/block_parser.rb', line 1372
def _reduce_10(val, _values, result)
result = [RDoc::Markup::BlankLine.new]
result
end
|
#_reduce_11(val, _values, result) ⇒ Object
1377
1378
1379
1380
|
# File 'lib/rdoc/rd/block_parser.rb', line 1377
def _reduce_11(val, _values, result)
result = val[0].parts
result
end
|
#_reduce_12(val, _values, result) ⇒ Object
1382
1383
1384
1385
1386
1387
1388
|
# File 'lib/rdoc/rd/block_parser.rb', line 1382
def _reduce_12(val, _values, result)
title = @inline_parser.parse(val[0][1])
result = RDoc::Markup::Heading.new(val[0][0], title)
result
end
|
#_reduce_13(val, _values, result) ⇒ Object
1390
1391
1392
1393
1394
|
# File 'lib/rdoc/rd/block_parser.rb', line 1390
def _reduce_13(val, _values, result)
result = RDoc::Markup::Include.new val[0], @include_path
result
end
|
#_reduce_14(val, _values, result) ⇒ Object
1396
1397
1398
1399
1400
1401
|
# File 'lib/rdoc/rd/block_parser.rb', line 1396
def _reduce_14(val, _values, result)
result = paragraph val[0]
result
end
|
#_reduce_15(val, _values, result) ⇒ Object
1403
1404
1405
1406
|
# File 'lib/rdoc/rd/block_parser.rb', line 1403
def _reduce_15(val, _values, result)
result << val[1].rstrip
result
end
|
#_reduce_16(val, _values, result) ⇒ Object
1408
1409
1410
1411
|
# File 'lib/rdoc/rd/block_parser.rb', line 1408
def _reduce_16(val, _values, result)
result = [val[0].rstrip]
result
end
|
#_reduce_17(val, _values, result) ⇒ Object
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
|
# File 'lib/rdoc/rd/block_parser.rb', line 1413
def _reduce_17(val, _values, result)
content = cut_off val[1]
result = RDoc::Markup::Verbatim.new(*content)
@in_verbatim = false
result
end
|
#_reduce_18(val, _values, result) ⇒ Object
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
|
# File 'lib/rdoc/rd/block_parser.rb', line 1424
def _reduce_18(val, _values, result)
content = cut_off val[0]
result = RDoc::Markup::Verbatim.new(*content)
@in_verbatim = false
result
end
|
#_reduce_19(val, _values, result) ⇒ Object
1435
1436
1437
1438
1439
|
# File 'lib/rdoc/rd/block_parser.rb', line 1435
def _reduce_19(val, _values, result)
result << val[1]
result
end
|
#_reduce_2(val, _values, result) ⇒ Object
1335
1336
1337
1338
|
# File 'lib/rdoc/rd/block_parser.rb', line 1335
def _reduce_2(val, _values, result)
raise ParseError, "file empty"
result
end
|
#_reduce_20(val, _values, result) ⇒ Object
1441
1442
1443
1444
1445
|
# File 'lib/rdoc/rd/block_parser.rb', line 1441
def _reduce_20(val, _values, result)
result.concat val[2]
result
end
|
#_reduce_21(val, _values, result) ⇒ Object
1447
1448
1449
1450
1451
|
# File 'lib/rdoc/rd/block_parser.rb', line 1447
def _reduce_21(val, _values, result)
result << "\n"
result
end
|
#_reduce_22(val, _values, result) ⇒ Object
1453
1454
1455
1456
1457
1458
1459
|
# File 'lib/rdoc/rd/block_parser.rb', line 1453
def _reduce_22(val, _values, result)
result = val
@in_verbatim = true
result
end
|
#_reduce_27(val, _values, result) ⇒ Object
1469
1470
1471
1472
1473
|
# File 'lib/rdoc/rd/block_parser.rb', line 1469
def _reduce_27(val, _values, result)
result = val[0]
result
end
|
#_reduce_28(val, _values, result) ⇒ Object
1475
1476
1477
1478
1479
|
# File 'lib/rdoc/rd/block_parser.rb', line 1475
def _reduce_28(val, _values, result)
result = val[1]
result
end
|
#_reduce_29(val, _values, result) ⇒ Object
1481
1482
1483
1484
1485
|
# File 'lib/rdoc/rd/block_parser.rb', line 1481
def _reduce_29(val, _values, result)
result = val[1].push(val[2])
result
end
|
#_reduce_3(val, _values, result) ⇒ Object
1340
1341
1342
1343
|
# File 'lib/rdoc/rd/block_parser.rb', line 1340
def _reduce_3(val, _values, result)
result = val[0].concat val[1]
result
end
|
#_reduce_30(val, _values, result) ⇒ Object
1487
1488
1489
1490
|
# File 'lib/rdoc/rd/block_parser.rb', line 1487
def _reduce_30(val, _values, result)
result = val[0] << val[1]
result
end
|
#_reduce_31(val, _values, result) ⇒ Object
1492
1493
1494
1495
|
# File 'lib/rdoc/rd/block_parser.rb', line 1492
def _reduce_31(val, _values, result)
result = [val[0]]
result
end
|
#_reduce_32(val, _values, result) ⇒ Object
1497
1498
1499
1500
1501
|
# File 'lib/rdoc/rd/block_parser.rb', line 1497
def _reduce_32(val, _values, result)
result = RDoc::Markup::List.new :BULLET, *val[0]
result
end
|
#_reduce_33(val, _values, result) ⇒ Object
1503
1504
1505
1506
|
# File 'lib/rdoc/rd/block_parser.rb', line 1503
def _reduce_33(val, _values, result)
result.push(val[1])
result
end
|
#_reduce_34(val, _values, result) ⇒ Object
1508
1509
1510
1511
|
# File 'lib/rdoc/rd/block_parser.rb', line 1508
def _reduce_34(val, _values, result)
result = val
result
end
|
#_reduce_35(val, _values, result) ⇒ Object
1513
1514
1515
1516
1517
|
# File 'lib/rdoc/rd/block_parser.rb', line 1513
def _reduce_35(val, _values, result)
result = RDoc::Markup::ListItem.new nil, val[0], *val[1]
result
end
|
#_reduce_36(val, _values, result) ⇒ Object
1519
1520
1521
1522
1523
|
# File 'lib/rdoc/rd/block_parser.rb', line 1519
def _reduce_36(val, _values, result)
result = RDoc::Markup::List.new :NUMBER, *val[0]
result
end
|
#_reduce_37(val, _values, result) ⇒ Object
1525
1526
1527
1528
|
# File 'lib/rdoc/rd/block_parser.rb', line 1525
def _reduce_37(val, _values, result)
result.push(val[1])
result
end
|
#_reduce_38(val, _values, result) ⇒ Object
1530
1531
1532
1533
|
# File 'lib/rdoc/rd/block_parser.rb', line 1530
def _reduce_38(val, _values, result)
result = val
result
end
|
#_reduce_39(val, _values, result) ⇒ Object
1535
1536
1537
1538
1539
|
# File 'lib/rdoc/rd/block_parser.rb', line 1535
def _reduce_39(val, _values, result)
result = RDoc::Markup::ListItem.new nil, val[0], *val[1]
result
end
|
#_reduce_4(val, _values, result) ⇒ Object
1345
1346
1347
1348
|
# File 'lib/rdoc/rd/block_parser.rb', line 1345
def _reduce_4(val, _values, result)
result = val[0]
result
end
|
#_reduce_40(val, _values, result) ⇒ Object
1541
1542
1543
1544
1545
|
# File 'lib/rdoc/rd/block_parser.rb', line 1541
def _reduce_40(val, _values, result)
result = RDoc::Markup::List.new :NOTE, *val[0]
result
end
|
#_reduce_41(val, _values, result) ⇒ Object
1547
1548
1549
1550
|
# File 'lib/rdoc/rd/block_parser.rb', line 1547
def _reduce_41(val, _values, result)
result.push(val[1])
result
end
|
#_reduce_42(val, _values, result) ⇒ Object
1552
1553
1554
1555
|
# File 'lib/rdoc/rd/block_parser.rb', line 1552
def _reduce_42(val, _values, result)
result = val
result
end
|
#_reduce_43(val, _values, result) ⇒ Object
1557
1558
1559
1560
1561
1562
1563
|
# File 'lib/rdoc/rd/block_parser.rb', line 1557
def _reduce_43(val, _values, result)
term = @inline_parser.parse val[0].strip
result = RDoc::Markup::ListItem.new term, *val[1]
result
end
|
#_reduce_44(val, _values, result) ⇒ Object
1565
1566
1567
1568
1569
|
# File 'lib/rdoc/rd/block_parser.rb', line 1565
def _reduce_44(val, _values, result)
result = RDoc::Markup::List.new :LABEL, *val[0]
result
end
|
#_reduce_45(val, _values, result) ⇒ Object
1571
1572
1573
1574
|
# File 'lib/rdoc/rd/block_parser.rb', line 1571
def _reduce_45(val, _values, result)
result.push(val[1])
result
end
|
#_reduce_46(val, _values, result) ⇒ Object
1576
1577
1578
1579
|
# File 'lib/rdoc/rd/block_parser.rb', line 1576
def _reduce_46(val, _values, result)
result = val
result
end
|
#_reduce_47(val, _values, result) ⇒ Object
1581
1582
1583
1584
1585
|
# File 'lib/rdoc/rd/block_parser.rb', line 1581
def _reduce_47(val, _values, result)
result = RDoc::Markup::ListItem.new "<tt>#{val[0].strip}</tt>", *val[1]
result
end
|
#_reduce_48(val, _values, result) ⇒ Object
1587
1588
1589
1590
1591
|
# File 'lib/rdoc/rd/block_parser.rb', line 1587
def _reduce_48(val, _values, result)
result = [val[1]].concat(val[2])
result
end
|
#_reduce_49(val, _values, result) ⇒ Object
1593
1594
1595
1596
1597
|
# File 'lib/rdoc/rd/block_parser.rb', line 1593
def _reduce_49(val, _values, result)
result = [val[1]]
result
end
|
#_reduce_5(val, _values, result) ⇒ Object
1350
1351
1352
1353
|
# File 'lib/rdoc/rd/block_parser.rb', line 1350
def _reduce_5(val, _values, result)
result = val
result
end
|
#_reduce_50(val, _values, result) ⇒ Object
1599
1600
1601
1602
1603
|
# File 'lib/rdoc/rd/block_parser.rb', line 1599
def _reduce_50(val, _values, result)
result = val[2]
result
end
|
#_reduce_51(val, _values, result) ⇒ Object
1605
1606
1607
1608
1609
|
# File 'lib/rdoc/rd/block_parser.rb', line 1605
def _reduce_51(val, _values, result)
result = []
result
end
|
#_reduce_52(val, _values, result) ⇒ Object
1611
1612
1613
1614
|
# File 'lib/rdoc/rd/block_parser.rb', line 1611
def _reduce_52(val, _values, result)
result.concat val[1]
result
end
|
#_reduce_54(val, _values, result) ⇒ Object
1618
1619
1620
1621
|
# File 'lib/rdoc/rd/block_parser.rb', line 1618
def _reduce_54(val, _values, result)
result = val
result
end
|
#_reduce_55(val, _values, result) ⇒ Object
1623
1624
1625
1626
|
# File 'lib/rdoc/rd/block_parser.rb', line 1623
def _reduce_55(val, _values, result)
result = val
result
end
|
#_reduce_57(val, _values, result) ⇒ Object
1630
1631
1632
1633
|
# File 'lib/rdoc/rd/block_parser.rb', line 1630
def _reduce_57(val, _values, result)
result = []
result
end
|
#_reduce_6(val, _values, result) ⇒ Object
1355
1356
1357
1358
|
# File 'lib/rdoc/rd/block_parser.rb', line 1355
def _reduce_6(val, _values, result)
result = val
result
end
|
#_reduce_62(val, _values, result) ⇒ Object
1643
1644
1645
1646
1647
|
# File 'lib/rdoc/rd/block_parser.rb', line 1643
def _reduce_62(val, _values, result)
result = paragraph [val[0]].concat(val[1])
result
end
|
#_reduce_63(val, _values, result) ⇒ Object
1649
1650
1651
1652
1653
|
# File 'lib/rdoc/rd/block_parser.rb', line 1649
def _reduce_63(val, _values, result)
result = paragraph [val[0]]
result
end
|
#_reduce_64(val, _values, result) ⇒ Object
1655
1656
1657
1658
1659
|
# File 'lib/rdoc/rd/block_parser.rb', line 1655
def _reduce_64(val, _values, result)
result = paragraph [val[0]].concat(val[1])
result
end
|
#_reduce_65(val, _values, result) ⇒ Object
1661
1662
1663
1664
1665
|
# File 'lib/rdoc/rd/block_parser.rb', line 1661
def _reduce_65(val, _values, result)
result = paragraph [val[0]]
result
end
|
#_reduce_66(val, _values, result) ⇒ Object
1667
1668
1669
1670
1671
|
# File 'lib/rdoc/rd/block_parser.rb', line 1667
def _reduce_66(val, _values, result)
result = [val[0]].concat(val[1])
result
end
|
#_reduce_67(val, _values, result) ⇒ Object
1673
1674
1675
1676
|
# File 'lib/rdoc/rd/block_parser.rb', line 1673
def _reduce_67(val, _values, result)
result.concat val[1]
result
end
|
#_reduce_68(val, _values, result) ⇒ Object
1678
1679
1680
1681
|
# File 'lib/rdoc/rd/block_parser.rb', line 1678
def _reduce_68(val, _values, result)
result = val[1]
result
end
|
#_reduce_69(val, _values, result) ⇒ Object
1683
1684
1685
1686
|
# File 'lib/rdoc/rd/block_parser.rb', line 1683
def _reduce_69(val, _values, result)
result = val
result
end
|
#_reduce_71(val, _values, result) ⇒ Object
1690
1691
1692
1693
|
# File 'lib/rdoc/rd/block_parser.rb', line 1690
def _reduce_71(val, _values, result)
result = []
result
end
|
#_reduce_72(val, _values, result) ⇒ Object
1695
1696
1697
1698
|
# File 'lib/rdoc/rd/block_parser.rb', line 1695
def _reduce_72(val, _values, result)
result = []
result
end
|
#_reduce_8(val, _values, result) ⇒ Object
1362
1363
1364
1365
|
# File 'lib/rdoc/rd/block_parser.rb', line 1362
def _reduce_8(val, _values, result)
result = val
result
end
|
#_reduce_9(val, _values, result) ⇒ Object
1367
1368
1369
1370
|
# File 'lib/rdoc/rd/block_parser.rb', line 1367
def _reduce_9(val, _values, result)
result = val
result
end
|
#_reduce_none(val, _values, result) ⇒ Object
1700
1701
1702
|
# File 'lib/rdoc/rd/block_parser.rb', line 1700
def _reduce_none(val, _values, result)
val[0]
end
|
Adds footnote content
to the document
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
|
# File 'lib/rdoc/rd/block_parser.rb', line 1045
def content
index = .length / 2 + 1
= "{^#{index}}[rdoc-label:footmark-#{index}:foottext-#{index}]"
<< RDoc::Markup::Paragraph.new(, ' ', *content)
<< RDoc::Markup::BlankLine.new
index
end
|
#add_label(label) ⇒ Object
Adds label label
to the document
1059
1060
1061
1062
1063
|
# File 'lib/rdoc/rd/block_parser.rb', line 1059
def add_label label
@labels[label] = true
label
end
|
#content(values) ⇒ Object
Retrieves the content of values
as a single String
1028
1029
1030
|
# File 'lib/rdoc/rd/block_parser.rb', line 1028
def content values
values.map { |value| value.content }.join
end
|
#line_index ⇒ Object
983
984
985
|
# File 'lib/rdoc/rd/block_parser.rb', line 983
def line_index
@i
end
|
#next_token ⇒ Object
Returns the next token from the document
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
|
# File 'lib/rdoc/rd/block_parser.rb', line 751
def next_token
while @in_part != "rd"
line = @src[@i]
@i += 1
case line
when false
return [false, false]
when /^=begin\s*(?:\bRD\b.*)?\s*$/
if @in_part
@part_content.push(line)
else
@in_part = "rd"
return [:WHITELINE, "=begin\n"]
end
when /^=begin\s+(\w+)/
part = $1
@in_part = part
when /^=end(?:$|[\s\0\C-d\C-z])/
if @in_part
end
else
end
end
@current_indent = @indent_stack.join("")
line = @src[@i]
case line
when false
if_current_indent_equal("") do
[false, false]
end
when /^=end/
if_current_indent_equal("") do
@in_part = nil
[:WHITELINE, "=end"]
end
when /^\s*$/
@i += 1
return [:WHITELINE, ':WHITELINE']
when /^\#/
@i += 1
self.next_token()
when /^(={1,4})(?!=)\s*(?=\S)/, /^(\+{1,2})(?!\+)\s*(?=\S)/
rest = $'
rest.strip!
mark = $1
if_current_indent_equal("") do
return [:HEADLINE, [MARK_TO_LEVEL[mark], rest]]
end
when /^<<<\s*(\S+)/
file = $1
if_current_indent_equal("") do
suffix = file[-3 .. -1]
if suffix == ".rd" or suffix == ".rb"
subtree = parse_subtree(get_included(file))
[:SUBTREE, subtree]
else
[:INCLUDE, file]
end
end
when /^(\s*)\*(\s*)/
rest = $'
newIndent = $2
if_current_indent_equal($1) do
if @in_verbatim
[:STRINGLINE, line]
else
@indent_stack.push("\s" + newIndent)
[:ITEMLISTLINE, rest]
end
end
when /^(\s*)(\(\d+\))(\s*)/
rest = $'
mark = $2
newIndent = $3
if_current_indent_equal($1) do
if @in_verbatim
[:STRINGLINE, line]
else
@indent_stack.push("\s" * mark.size + newIndent)
[:ENUMLISTLINE, rest]
end
end
when /^(\s*):(\s*)/
rest = $'
newIndent = $2
if_current_indent_equal($1) do
if @in_verbatim
[:STRINGLINE, line]
else
@indent_stack.push("\s#{$2}")
[:DESCLISTLINE, rest]
end
end
when /^(\s*)---(?!-|\s*$)/
indent = $1
rest = $'
/\s*/ === rest
term = $'
new_indent = $&
if_current_indent_equal(indent) do
if @in_verbatim
[:STRINGLINE, line]
else
@indent_stack.push("\s\s\s" + new_indent)
[:METHODLISTLINE, term]
end
end
when /^(\s*)/
if_current_indent_equal($1) do
[:STRINGLINE, line]
end
else
raise "[BUG] parsing error may occurred."
end
end
|
#on_error(et, ev, _values) ⇒ Object
Raises a ParseError when invalid formatting is found
967
968
969
970
971
972
973
974
975
976
977
978
|
# File 'lib/rdoc/rd/block_parser.rb', line 967
def on_error(et, ev, _values)
prv, cur, nxt = format_line_num(@i, @i+1, @i+2)
raise ParseError, "\nRD syntax error: line \#{@i+1}:\n \#{prv} |\#{@src[@i-1].chomp}\n \#{cur}=>|\#{@src[@i].chomp}\n \#{nxt} |\#{@src[@i+1].chomp}\n\n"
end
|
#paragraph(value) ⇒ Object
Creates a paragraph for value
1035
1036
1037
1038
1039
1040
|
# File 'lib/rdoc/rd/block_parser.rb', line 1035
def paragraph value
content = cut_off(value).join(' ').rstrip
contents = @inline_parser.parse content
RDoc::Markup::Paragraph.new(*contents)
end
|
#parse(src) ⇒ Object
Parses src
and returns an RDoc::Markup::Document.
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
|
# File 'lib/rdoc/rd/block_parser.rb', line 707
def parse src
@src = src
@src.push false
= []
@labels = {}
@i = 0
@indent_stack = []
@current_indent = @indent_stack.join("")
@subparser = nil
@in_part = nil
@part_content = []
@in_verbatim = false
@yydebug = true
document = do_parse
unless .empty? then
blankline = document.parts.pop
document.parts << RDoc::Markup::Rule.new(1)
document.parts.concat
document.parts.push blankline
end
document
end
|