Class: RDoc::RD::InlineParser
- Inherits:
-
Racc::Parser
- Object
- Racc::Parser
- RDoc::RD::InlineParser
- Defined in:
- lib/rdoc/rd/inline_parser.rb
Overview
RD format parser for inline markup such as emphasis, links, footnotes, etc.
Constant Summary collapse
- EM_OPEN =
:stopdoc:
'((*'
- EM_OPEN_RE =
/\A#{Regexp.quote(EM_OPEN)}/
- EM_CLOSE =
'*))'
- EM_CLOSE_RE =
/\A#{Regexp.quote(EM_CLOSE)}/
- CODE_OPEN =
'(({'
- CODE_OPEN_RE =
/\A#{Regexp.quote(CODE_OPEN)}/
- CODE_CLOSE =
'}))'
- CODE_CLOSE_RE =
/\A#{Regexp.quote(CODE_CLOSE)}/
- VAR_OPEN =
'((|'
- VAR_OPEN_RE =
/\A#{Regexp.quote(VAR_OPEN)}/
- VAR_CLOSE =
'|))'
- VAR_CLOSE_RE =
/\A#{Regexp.quote(VAR_CLOSE)}/
- KBD_OPEN =
'((%'
- KBD_OPEN_RE =
/\A#{Regexp.quote(KBD_OPEN)}/
- KBD_CLOSE =
'%))'
- KBD_CLOSE_RE =
/\A#{Regexp.quote(KBD_CLOSE)}/
- INDEX_OPEN =
'((:'
- INDEX_OPEN_RE =
/\A#{Regexp.quote(INDEX_OPEN)}/
- INDEX_CLOSE =
':))'
- INDEX_CLOSE_RE =
/\A#{Regexp.quote(INDEX_CLOSE)}/
- REF_OPEN =
'((<'
- REF_OPEN_RE =
/\A#{Regexp.quote(REF_OPEN)}/
- REF_CLOSE =
'>))'
- REF_CLOSE_RE =
/\A#{Regexp.quote(REF_CLOSE)}/
- FOOTNOTE_OPEN =
'((-'
- FOOTNOTE_OPEN_RE =
/\A#{Regexp.quote(FOOTNOTE_OPEN)}/
- FOOTNOTE_CLOSE =
'-))'
- FOOTNOTE_CLOSE_RE =
/\A#{Regexp.quote(FOOTNOTE_CLOSE)}/
- VERB_OPEN =
"(('"
- VERB_OPEN_RE =
/\A#{Regexp.quote(VERB_OPEN)}/
- VERB_CLOSE =
"'))"
- VERB_CLOSE_RE =
/\A#{Regexp.quote(VERB_CLOSE)}/
- BAR =
"|"
- BAR_RE =
/\A#{Regexp.quote(BAR)}/
- QUOTE =
'"'
- QUOTE_RE =
/\A#{Regexp.quote(QUOTE)}/
- SLASH =
"/"
- SLASH_RE =
/\A#{Regexp.quote(SLASH)}/
- BACK_SLASH =
"\\"
- BACK_SLASH_RE =
/\A#{Regexp.quote(BACK_SLASH)}/
- URL =
"URL:"
- URL_RE =
/\A#{Regexp.quote(URL)}/
- OTHER_RE =
Regexp.new( "\\A.+?(?=#{Regexp.quote(EM_OPEN)}|#{Regexp.quote(EM_CLOSE)}| #{Regexp.quote(CODE_OPEN)}|#{Regexp.quote(CODE_CLOSE)}| #{Regexp.quote(VAR_OPEN)}|#{Regexp.quote(VAR_CLOSE)}| #{Regexp.quote(KBD_OPEN)}|#{Regexp.quote(KBD_CLOSE)}| #{Regexp.quote(INDEX_OPEN)}|#{Regexp.quote(INDEX_CLOSE)}| #{Regexp.quote(REF_OPEN)}|#{Regexp.quote(REF_CLOSE)}| #{Regexp.quote(FOOTNOTE_OPEN)}|#{Regexp.quote(FOOTNOTE_CLOSE)}| #{Regexp.quote(VERB_OPEN)}|#{Regexp.quote(VERB_CLOSE)}| #{Regexp.quote(BAR)}| #{Regexp.quote(QUOTE)}| #{Regexp.quote(SLASH)}| #{Regexp.quote(BACK_SLASH)}| #{Regexp.quote(URL)})", other_re_mode)
- 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", "EX_LOW", "QUOTE", "BAR", "SLASH", "BACK_SLASH", "URL", "OTHER", "REF_OPEN", "FOOTNOTE_OPEN", "FOOTNOTE_CLOSE", "EX_HIGH", "EM_OPEN", "EM_CLOSE", "CODE_OPEN", "CODE_CLOSE", "VAR_OPEN", "VAR_CLOSE", "KBD_OPEN", "KBD_CLOSE", "INDEX_OPEN", "INDEX_CLOSE", "REF_CLOSE", "VERB_OPEN", "VERB_CLOSE", "$start", "content", "elements", "element", "emphasis", "code", "var", "keyboard", "index", "reference", "footnote", "verb", "normal_str_ele", "substitute", "ref_label", "ref_label2", "ref_url_strings", "filename", "element_label", "element_label2", "ref_subst_content", "ref_subst_content_q", "ref_subst_strings_q", "ref_subst_strings_first", "ref_subst_ele2", "ref_subst_eles", "ref_subst_str_ele_first", "ref_subst_eles_q", "ref_subst_ele", "ref_subst_ele_q", "ref_subst_str_ele", "ref_subst_str_ele_q", "ref_subst_strings", "ref_subst_string3", "ref_subst_string", "ref_subst_string_q", "ref_subst_string2", "ref_url_string", "verb_strings", "normal_string", "normal_strings", "verb_string", "verb_normal_string" ]
- Racc_debug_parser =
false
Constants inherited from Racc::Parser
Racc::Parser::Racc_Runtime_Core_Version_R, Racc::Parser::Racc_Runtime_Version
Instance Method Summary collapse
-
#_reduce_101(val, _values, result) ⇒ Object
reduce 100 omitted.
- #_reduce_102(val, _values, result) ⇒ Object
-
#_reduce_109(val, _values, result) ⇒ Object
reduce 108 omitted.
-
#_reduce_111(val, _values, result) ⇒ Object
reduce 110 omitted.
-
#_reduce_113(val, _values, result) ⇒ Object
reduce 112 omitted.
- #_reduce_114(val, _values, result) ⇒ Object
- #_reduce_115(val, _values, result) ⇒ Object
-
#_reduce_13(val, _values, result) ⇒ Object
reduce 12 omitted.
-
#_reduce_136(val, _values, result) ⇒ Object
reduce 135 omitted.
- #_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 1 omitted.
- #_reduce_20(val, _values, result) ⇒ Object
- #_reduce_21(val, _values, result) ⇒ Object
- #_reduce_22(val, _values, result) ⇒ Object
- #_reduce_23(val, _values, result) ⇒ Object
- #_reduce_24(val, _values, result) ⇒ Object
- #_reduce_25(val, _values, result) ⇒ Object
- #_reduce_26(val, _values, result) ⇒ Object
- #_reduce_27(val, _values, result) ⇒ Object
-
#_reduce_29(val, _values, result) ⇒ Object
reduce 28 omitted.
- #_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_36(val, _values, result) ⇒ Object
reduce 35 omitted.
- #_reduce_37(val, _values, result) ⇒ Object
- #_reduce_38(val, _values, result) ⇒ Object
- #_reduce_39(val, _values, result) ⇒ Object
- #_reduce_40(val, _values, result) ⇒ Object
- #_reduce_41(val, _values, result) ⇒ Object
-
#_reduce_43(val, _values, result) ⇒ Object
reduce 42 omitted.
- #_reduce_44(val, _values, result) ⇒ Object
- #_reduce_45(val, _values, result) ⇒ Object
- #_reduce_46(val, _values, result) ⇒ Object
-
#_reduce_57(val, _values, result) ⇒ Object
reduce 56 omitted.
- #_reduce_58(val, _values, result) ⇒ Object
- #_reduce_59(val, _values, result) ⇒ Object
- #_reduce_60(val, _values, result) ⇒ Object
-
#_reduce_62(val, _values, result) ⇒ Object
reduce 61 omitted.
-
#_reduce_64(val, _values, result) ⇒ Object
reduce 63 omitted.
-
#_reduce_78(val, _values, result) ⇒ Object
reduce 77 omitted.
-
#_reduce_none(val, _values, result) ⇒ Object
reduce 137 omitted.
-
#initialize(block_parser) ⇒ InlineParser
constructor
Creates a new parser for inline markup in the rd format.
-
#inline(rdoc, reference = rdoc) ⇒ Object
Creates a new RDoc::RD::Inline for the
rdoc
markup and the rawreference
. -
#next_token ⇒ Object
Returns the next token from the inline text.
-
#next_words_on_error ⇒ Object
Returns words following an error.
-
#on_error(et, ev, values) ⇒ Object
Raises a ParseError when invalid formatting is found.
-
#parse(inline) ⇒ Object
Parses the
inline
text from RD format into RDoc format. -
#prev_words_on_error(ev) ⇒ Object
Returns words before the error.
Methods inherited from Racc::Parser
#_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
#initialize(block_parser) ⇒ InlineParser
Creates a new parser for inline markup in the rd format. The block_parser
is used to for footnotes and labels in the inline text.
734 735 736 |
# File 'lib/rdoc/rd/inline_parser.rb', line 734 def initialize block_parser @block_parser = block_parser end |
Instance Method Details
#_reduce_101(val, _values, result) ⇒ Object
reduce 100 omitted
1746 1747 1748 1749 1750 1751 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1746 def _reduce_101(val, _values, result) index = @block_parser.add_footnote val[1].rdoc result = "{*#{index}}[rdoc-label:foottext-#{index}:footmark-#{index}]" result end |
#_reduce_102(val, _values, result) ⇒ Object
1753 1754 1755 1756 1757 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1753 def _reduce_102(val, _values, result) result = inline "<tt>#{val[1]}</tt>", val[1] result end |
#_reduce_109(val, _values, result) ⇒ Object
reduce 108 omitted
1771 1772 1773 1774 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1771 def _reduce_109(val, _values, result) result << val[1] result end |
#_reduce_111(val, _values, result) ⇒ Object
reduce 110 omitted
1778 1779 1780 1781 1782 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1778 def _reduce_111(val, _values, result) result = inline val[0] result end |
#_reduce_113(val, _values, result) ⇒ Object
reduce 112 omitted
1786 1787 1788 1789 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1786 def _reduce_113(val, _values, result) result = val[1] result end |
#_reduce_114(val, _values, result) ⇒ Object
1791 1792 1793 1794 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1791 def _reduce_114(val, _values, result) result = val[1] result end |
#_reduce_115(val, _values, result) ⇒ Object
1796 1797 1798 1799 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1796 def _reduce_115(val, _values, result) result = val[1] result end |
#_reduce_13(val, _values, result) ⇒ Object
reduce 12 omitted
1409 1410 1411 1412 1413 1414 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1409 def _reduce_13(val, _values, result) content = val[1] result = inline "<em>#{content}</em>", content result end |
#_reduce_136(val, _values, result) ⇒ Object
reduce 135 omitted
1841 1842 1843 1844 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1841 def _reduce_136(val, _values, result) result << val[1] result end |
#_reduce_14(val, _values, result) ⇒ Object
1416 1417 1418 1419 1420 1421 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1416 def _reduce_14(val, _values, result) content = val[1] result = inline "<code>#{content}</code>", content result end |
#_reduce_15(val, _values, result) ⇒ Object
1423 1424 1425 1426 1427 1428 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1423 def _reduce_15(val, _values, result) content = val[1] result = inline "+#{content}+", content result end |
#_reduce_16(val, _values, result) ⇒ Object
1430 1431 1432 1433 1434 1435 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1430 def _reduce_16(val, _values, result) content = val[1] result = inline "<tt>#{content}</tt>", content result end |
#_reduce_17(val, _values, result) ⇒ Object
1437 1438 1439 1440 1441 1442 1443 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1437 def _reduce_17(val, _values, result) label = val[1] @block_parser.add_label label.reference result = "<span id=\"label-#{label}\">#{label}</span>" result end |
#_reduce_18(val, _values, result) ⇒ Object
1445 1446 1447 1448 1449 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1445 def _reduce_18(val, _values, result) result = "{#{val[1]}}[#{val[2].join}]" result end |
#_reduce_19(val, _values, result) ⇒ Object
1451 1452 1453 1454 1455 1456 1457 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1451 def _reduce_19(val, _values, result) scheme, inline = val[1] result = "{#{inline}}[#{scheme}#{inline.reference}]" result end |
#_reduce_2(val, _values, result) ⇒ Object
reduce 1 omitted
1381 1382 1383 1384 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1381 def _reduce_2(val, _values, result) result.append val[1] result end |
#_reduce_20(val, _values, result) ⇒ Object
1459 1460 1461 1462 1463 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1459 def _reduce_20(val, _values, result) result = [nil, inline(val[1])] result end |
#_reduce_21(val, _values, result) ⇒ Object
1465 1466 1467 1468 1469 1470 1471 1472 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1465 def _reduce_21(val, _values, result) result = [ 'rdoc-label:', inline("#{val[0].reference}/#{val[1].reference}") ] result end |
#_reduce_22(val, _values, result) ⇒ Object
1474 1475 1476 1477 1478 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1474 def _reduce_22(val, _values, result) result = ['rdoc-label:', val[0].reference] result end |
#_reduce_23(val, _values, result) ⇒ Object
1480 1481 1482 1483 1484 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1480 def _reduce_23(val, _values, result) result = ['rdoc-label:', "#{val[0].reference}/"] result end |
#_reduce_24(val, _values, result) ⇒ Object
1486 1487 1488 1489 1490 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1486 def _reduce_24(val, _values, result) result = [nil, inline(val[1])] result end |
#_reduce_25(val, _values, result) ⇒ Object
1492 1493 1494 1495 1496 1497 1498 1499 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1492 def _reduce_25(val, _values, result) result = [ 'rdoc-label:', inline("#{val[0].reference}/#{val[1].reference}") ] result end |
#_reduce_26(val, _values, result) ⇒ Object
1501 1502 1503 1504 1505 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1501 def _reduce_26(val, _values, result) result = ['rdoc-label:', val[0]] result end |
#_reduce_27(val, _values, result) ⇒ Object
1507 1508 1509 1510 1511 1512 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1507 def _reduce_27(val, _values, result) ref = val[0].reference result = ['rdoc-label:', inline(ref, "#{ref}/")] result end |
#_reduce_29(val, _values, result) ⇒ Object
reduce 28 omitted
1516 1517 1518 1519 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1516 def _reduce_29(val, _values, result) result = val[1] result end |
#_reduce_3(val, _values, result) ⇒ Object
1386 1387 1388 1389 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1386 def _reduce_3(val, _values, result) result = val[0] result end |
#_reduce_30(val, _values, result) ⇒ Object
1521 1522 1523 1524 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1521 def _reduce_30(val, _values, result) result = val[1] result end |
#_reduce_31(val, _values, result) ⇒ Object
1526 1527 1528 1529 1530 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1526 def _reduce_31(val, _values, result) result = inline val[0] result end |
#_reduce_32(val, _values, result) ⇒ Object
1532 1533 1534 1535 1536 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1532 def _reduce_32(val, _values, result) result = inline "\"#{val[1]}\"" result end |
#_reduce_33(val, _values, result) ⇒ Object
1538 1539 1540 1541 1542 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1538 def _reduce_33(val, _values, result) result = inline val[0] result end |
#_reduce_34(val, _values, result) ⇒ Object
1544 1545 1546 1547 1548 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1544 def _reduce_34(val, _values, result) result = inline "\"#{val[1]}\"" result end |
#_reduce_36(val, _values, result) ⇒ Object
reduce 35 omitted
1552 1553 1554 1555 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1552 def _reduce_36(val, _values, result) result = val[1] result end |
#_reduce_37(val, _values, result) ⇒ Object
1557 1558 1559 1560 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1557 def _reduce_37(val, _values, result) result = inline val[1] result end |
#_reduce_38(val, _values, result) ⇒ Object
1562 1563 1564 1565 1566 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1562 def _reduce_38(val, _values, result) result = val[0].append val[1] result end |
#_reduce_39(val, _values, result) ⇒ Object
1568 1569 1570 1571 1572 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1568 def _reduce_39(val, _values, result) result = val[0].append val[1] result end |
#_reduce_40(val, _values, result) ⇒ Object
1574 1575 1576 1577 1578 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1574 def _reduce_40(val, _values, result) result = val[0] result end |
#_reduce_41(val, _values, result) ⇒ Object
1580 1581 1582 1583 1584 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1580 def _reduce_41(val, _values, result) result = inline val[0] result end |
#_reduce_43(val, _values, result) ⇒ Object
reduce 42 omitted
1588 1589 1590 1591 1592 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1588 def _reduce_43(val, _values, result) result = val[0].append val[1] result end |
#_reduce_44(val, _values, result) ⇒ Object
1594 1595 1596 1597 1598 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1594 def _reduce_44(val, _values, result) result = inline val[0] result end |
#_reduce_45(val, _values, result) ⇒ Object
1600 1601 1602 1603 1604 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1600 def _reduce_45(val, _values, result) result = val[0].append val[1] result end |
#_reduce_46(val, _values, result) ⇒ Object
1606 1607 1608 1609 1610 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1606 def _reduce_46(val, _values, result) result = val[0] result end |
#_reduce_57(val, _values, result) ⇒ Object
reduce 56 omitted
1632 1633 1634 1635 1636 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1632 def _reduce_57(val, _values, result) result = val[0] result end |
#_reduce_58(val, _values, result) ⇒ Object
1638 1639 1640 1641 1642 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1638 def _reduce_58(val, _values, result) result = inline val[0] result end |
#_reduce_59(val, _values, result) ⇒ Object
1644 1645 1646 1647 1648 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1644 def _reduce_59(val, _values, result) result = inline val[0] result end |
#_reduce_60(val, _values, result) ⇒ Object
1650 1651 1652 1653 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1650 def _reduce_60(val, _values, result) result << val[1] result end |
#_reduce_62(val, _values, result) ⇒ Object
reduce 61 omitted
1657 1658 1659 1660 1661 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1657 def _reduce_62(val, _values, result) result << val[1] result end |
#_reduce_64(val, _values, result) ⇒ Object
reduce 63 omitted
1665 1666 1667 1668 1669 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1665 def _reduce_64(val, _values, result) result << val[1] result end |
#_reduce_78(val, _values, result) ⇒ Object
reduce 77 omitted
1697 1698 1699 1700 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1697 def _reduce_78(val, _values, result) result << val[1] result end |
#_reduce_none(val, _values, result) ⇒ Object
reduce 137 omitted
1848 1849 1850 |
# File 'lib/rdoc/rd/inline_parser.rb', line 1848 def _reduce_none(val, _values, result) val[0] end |
#inline(rdoc, reference = rdoc) ⇒ Object
Creates a new RDoc::RD::Inline for the rdoc
markup and the raw reference
883 884 885 |
# File 'lib/rdoc/rd/inline_parser.rb', line 883 def inline rdoc, reference = rdoc RDoc::RD::Inline.new rdoc, reference end |
#next_token ⇒ Object
Returns the next token from the inline text
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 |
# File 'lib/rdoc/rd/inline_parser.rb', line 752 def next_token return [false, false] if @src.eos? # p @src.rest if @yydebug if ret = @src.scan(EM_OPEN_RE) @pre << ret [:EM_OPEN, ret] elsif ret = @src.scan(EM_CLOSE_RE) @pre << ret [:EM_CLOSE, ret] elsif ret = @src.scan(CODE_OPEN_RE) @pre << ret [:CODE_OPEN, ret] elsif ret = @src.scan(CODE_CLOSE_RE) @pre << ret [:CODE_CLOSE, ret] elsif ret = @src.scan(VAR_OPEN_RE) @pre << ret [:VAR_OPEN, ret] elsif ret = @src.scan(VAR_CLOSE_RE) @pre << ret [:VAR_CLOSE, ret] elsif ret = @src.scan(KBD_OPEN_RE) @pre << ret [:KBD_OPEN, ret] elsif ret = @src.scan(KBD_CLOSE_RE) @pre << ret [:KBD_CLOSE, ret] elsif ret = @src.scan(INDEX_OPEN_RE) @pre << ret [:INDEX_OPEN, ret] elsif ret = @src.scan(INDEX_CLOSE_RE) @pre << ret [:INDEX_CLOSE, ret] elsif ret = @src.scan(REF_OPEN_RE) @pre << ret [:REF_OPEN, ret] elsif ret = @src.scan(REF_CLOSE_RE) @pre << ret [:REF_CLOSE, ret] elsif ret = @src.scan(FOOTNOTE_OPEN_RE) @pre << ret [:FOOTNOTE_OPEN, ret] elsif ret = @src.scan(FOOTNOTE_CLOSE_RE) @pre << ret [:FOOTNOTE_CLOSE, ret] elsif ret = @src.scan(VERB_OPEN_RE) @pre << ret [:VERB_OPEN, ret] elsif ret = @src.scan(VERB_CLOSE_RE) @pre << ret [:VERB_CLOSE, ret] elsif ret = @src.scan(BAR_RE) @pre << ret [:BAR, ret] elsif ret = @src.scan(QUOTE_RE) @pre << ret [:QUOTE, ret] elsif ret = @src.scan(SLASH_RE) @pre << ret [:SLASH, ret] elsif ret = @src.scan(BACK_SLASH_RE) @pre << ret [:BACK_SLASH, ret] elsif ret = @src.scan(URL_RE) @pre << ret [:URL, ret] elsif ret = @src.scan(OTHER_RE) @pre << ret [:OTHER, ret] else ret = @src.rest @pre << ret @src.terminate [:OTHER, ret] end end |
#next_words_on_error ⇒ Object
Returns words following an error
872 873 874 875 876 877 878 |
# File 'lib/rdoc/rd/inline_parser.rb', line 872 def next_words_on_error if n = @src.rest.index("\n") @src.rest[0 .. (n-1)] else @src.rest end end |
#on_error(et, ev, values) ⇒ Object
Raises a ParseError when invalid formatting is found
832 833 834 835 836 837 838 839 840 841 842 843 844 |
# File 'lib/rdoc/rd/inline_parser.rb', line 832 def on_error(et, ev, values) lines_of_rest = @src.rest.lines.to_a.length prev_words = prev_words_on_error(ev) at = 4 + prev_words.length = <<-MSG RD syntax error: line #{@block_parser.line_index - lines_of_rest}: ...#{prev_words} #{(ev||'')} #{next_words_on_error()} ... MSG << " " * at + "^" * (ev ? ev.length : 0) + "\n" raise ParseError, end |
#parse(inline) ⇒ Object
Parses the inline
text from RD format into RDoc format.
741 742 743 744 745 746 747 |
# File 'lib/rdoc/rd/inline_parser.rb', line 741 def parse inline @inline = inline @src = StringScanner.new inline @pre = "".dup @yydebug = true do_parse.to_s end |
#prev_words_on_error(ev) ⇒ Object
Returns words before the error
849 850 851 852 853 854 855 |
# File 'lib/rdoc/rd/inline_parser.rb', line 849 def prev_words_on_error(ev) pre = @pre if ev and /#{Regexp.quote(ev)}$/ =~ pre pre = $` end last_line(pre) end |