Changeset 328
- Timestamp:
- Oct 31, 2009, 8:58:02 AM (14 years ago)
- Location:
- ruby/trunk/lib/adl_parser
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/adl_parser/lib/parser.rb
r326 r328 14 14 require 'rubygems' 15 15 require 'open_ehr' 16 #require 'adl_parser.rb'17 #require 'am.rb'18 #require 'rm.rb'19 #require 'rm/support/assumed_types.rb'20 #require 'assumed_library_types.rb'21 16 $DEBUG = true 22 17 … … 27 22 class Parser < Racc::Parser 28 23 29 module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1 368)24 module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1417) 30 25 31 26 def assert_at(file,line, message = "") … … 63 58 64 59 65 def parse(data, filename , lineno = 1, debug = false)60 def parse(data, filename = "", lineno = 1, debug = false) 66 61 @yydebug = true 67 62 @parsestring = data … … 1426 1421 module_eval(<<'.,.,', 'parser.y', 128) 1427 1422 def _reduce_19(val, _values, result) 1428 if val[1][0][:attr_id] == "original_language" 1429 result = {:arch_language => val[1][0][:object_block][:untyped_primitive_object_block]} 1423 dadl_section = val[1] 1424 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_language::dadl_section = \n#{dadl_section.to_yaml}") 1425 case dadl_section[:attr_id] 1426 when "translations" 1427 result = {:arch_language => dadl_section[:object_block][:untyped_primitive_object_block]} 1428 when "original_language" 1429 result = {:arch_language => dadl_section[:object_block][:untyped_primitive_object_block]} 1430 ### if val[1][:attr_id] == "original_language" 1431 ### result = {:arch_language => val[0][:object_block][:untyped_primitive_object_block]} 1430 1432 else 1431 raise OpenEhr::ADL::Exception::Parser::Error, "It should be 'original_language ' at #{@filename}:#{@lineno} "1433 raise OpenEhr::ADL::Exception::Parser::Error, "It should be 'original_language, but was #{dadl_section[:attr_id]}' at #{@filename}:#{@lineno} " 1432 1434 end 1433 1435 … … 1440 1442 # reduce 21 omitted 1441 1443 1442 module_eval(<<'.,.,', 'parser.y', 1 43)1444 module_eval(<<'.,.,', 'parser.y', 150) 1443 1445 def _reduce_22(val, _values, result) 1444 1446 args = Hash.new 1445 1447 val[1].each do |item| 1446 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_description: item [:object_block] = #{item[:object_block].to_yaml} at #{@filename}:#{@lineno}")1447 case item [:attr_id]1448 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_description: item = #{item.to_yaml} at #{@filename}:#{@lineno}") 1449 case item 1448 1450 when "original_author" 1449 1451 unless item[:object_block][:type_identifier] 1450 args.merge!(Hash[:original_author => item[: object_block][:untyped_multiple_attr_object_block]])1452 args.merge!(Hash[:original_author => item[:untyped_multiple_attr_object_block]]) 1451 1453 else 1452 1454 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 1453 1455 end 1454 1456 when "details" 1455 unless item[:object_block][:type_identifier] 1456 args.merge!(Hash[:details => item[:object_block][:untyped_multiple_attr_object_block]]) 1457 unless item[:type_identifier] 1458 args.merge!(Hash[:details => item[:untyped_multiple_attr_object_block]]) 1459 #args.merge!(Hash[:details => item[:object_block]]) 1457 1460 else 1458 1461 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 1459 1462 end 1460 1463 when "lifecycle_state" 1461 unless item[: object_block][:type_identifier]1462 args.merge!(Hash[:lifecycle_state => item[: object_block][:untyped_primitive_object_block]])1464 unless item[:type_identifier] 1465 args.merge!(Hash[:lifecycle_state => item[:untyped_primitive_object_block]]) 1463 1466 else 1464 1467 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 1465 1468 end 1466 1469 when "other_contributors" 1467 unless item[: object_block][:type_identifier]1468 args.merge!(Hash[:other_contributors => item[: object_block][:untyped_multiple_attr_object_block]])1470 unless item[:type_identifier] 1471 args.merge!(Hash[:other_contributors => item[:untyped_multiple_attr_object_block]]) 1469 1472 else 1470 1473 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 1471 1474 end 1472 1475 when "other_details" 1473 unless item[: object_block][:type_identifier]1474 args.merge!(Hash[:other_contributors => item[: object_block][:untyped_multiple_attr_object_block]])1476 unless item[:type_identifier] 1477 args.merge!(Hash[:other_contributors => item[:untyped_multiple_attr_object_block]]) 1475 1478 else 1476 1479 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 1477 1480 end 1478 1481 else 1479 raise OpenEhr::ADL::Exception::Parser::Error, "Unknown case #{item [:attr_id]} at #{@filename}:#{@lineno} "1482 raise OpenEhr::ADL::Exception::Parser::Error, "Unknown case #{item} at #{@filename}:#{@lineno} " 1480 1483 end 1481 1484 end … … 1489 1492 # reduce 23 omitted 1490 1493 1491 module_eval(<<'.,.,', 'parser.y', 19 0)1494 module_eval(<<'.,.,', 'parser.y', 198) 1492 1495 def _reduce_24(val, _values, result) 1493 1496 result = val[1] … … 1499 1502 # reduce 25 omitted 1500 1503 1501 module_eval(<<'.,.,', 'parser.y', 198)1504 module_eval(<<'.,.,', 'parser.y', 206) 1502 1505 def _reduce_26(val, _values, result) 1503 1506 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEhr::AM::Archetype::ConstraintModel::C_COMPLEX_OBJECT)} … … 1509 1512 .,., 1510 1513 1511 module_eval(<<'.,.,', 'parser.y', 2 04)1514 module_eval(<<'.,.,', 'parser.y', 212) 1512 1515 def _reduce_27(val, _values, result) 1513 1516 result = val[0] … … 1517 1520 .,., 1518 1521 1519 module_eval(<<'.,.,', 'parser.y', 2 12)1522 module_eval(<<'.,.,', 'parser.y', 220) 1520 1523 def _reduce_28(val, _values, result) 1521 1524 @@logger.debug("#{__FILE__}:#{__LINE__}:c_complx_object = \n c_complx_object_head = #{val[0].to_yaml}") … … 1530 1533 .,., 1531 1534 1532 module_eval(<<'.,.,', 'parser.y', 2 22)1535 module_eval(<<'.,.,', 'parser.y', 230) 1533 1536 def _reduce_29(val, _values, result) 1534 1537 result = OpenEhr::AM::Archetype::ConstraintModel::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| … … 1542 1545 .,., 1543 1546 1544 module_eval(<<'.,.,', 'parser.y', 2 34)1547 module_eval(<<'.,.,', 'parser.y', 242) 1545 1548 def _reduce_30(val, _values, result) 1546 1549 @@logger.debug("#{__FILE__}:#{__LINE__}: c_complex_object_head: c_complex_object_id => #{val[0]}, c_occurrences => #{val[1]}") … … 1551 1554 .,., 1552 1555 1553 module_eval(<<'.,.,', 'parser.y', 24 0)1556 module_eval(<<'.,.,', 'parser.y', 248) 1554 1557 def _reduce_31(val, _values, result) 1555 1558 result = {:type_identifier => val[0]} … … 1559 1562 .,., 1560 1563 1561 module_eval(<<'.,.,', 'parser.y', 2 44)1564 module_eval(<<'.,.,', 'parser.y', 252) 1562 1565 def _reduce_32(val, _values, result) 1563 1566 result = {:type_identifier => val[0], :local_term_code_ref => val[1]} … … 1569 1572 # reduce 33 omitted 1570 1573 1571 module_eval(<<'.,.,', 'parser.y', 25 0)1574 module_eval(<<'.,.,', 'parser.y', 258) 1572 1575 def _reduce_34(val, _values, result) 1573 1576 result = OpenEhr::AM::Archetype::ConstraintModel::C_COMPLEX_OBJECT.new(:attributes => val[0]) … … 1577 1580 .,., 1578 1581 1579 module_eval(<<'.,.,', 'parser.y', 2 68)1582 module_eval(<<'.,.,', 'parser.y', 276) 1580 1583 def _reduce_35(val, _values, result) 1581 1584 @@logger.debug("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0].inspect} at #{@filename}:#{@lineno}") … … 1586 1589 .,., 1587 1590 1588 module_eval(<<'.,.,', 'parser.y', 2 73)1591 module_eval(<<'.,.,', 'parser.y', 281) 1589 1592 def _reduce_36(val, _values, result) 1590 1593 result = OpenEhr::AM::Archetype::ConstraintModel::ARCHETYPE_INTERNAL_REF.create do |archetype_internal_ref| … … 1598 1601 .,., 1599 1602 1600 module_eval(<<'.,.,', 'parser.y', 28 1)1603 module_eval(<<'.,.,', 'parser.y', 289) 1601 1604 def _reduce_37(val, _values, result) 1602 1605 result = val[0] … … 1606 1609 .,., 1607 1610 1608 module_eval(<<'.,.,', 'parser.y', 2 85)1611 module_eval(<<'.,.,', 'parser.y', 293) 1609 1612 def _reduce_38(val, _values, result) 1610 1613 result = OpenEhr::AM::Archetype::ConstraintModel::CONSTRAINT_REF.create do |constraint_ref| … … 1616 1619 .,., 1617 1620 1618 module_eval(<<'.,.,', 'parser.y', 29 1)1621 module_eval(<<'.,.,', 'parser.y', 299) 1619 1622 def _reduce_39(val, _values, result) 1620 1623 result = val[0] … … 1624 1627 .,., 1625 1628 1626 module_eval(<<'.,.,', 'parser.y', 295)1629 module_eval(<<'.,.,', 'parser.y', 303) 1627 1630 def _reduce_40(val, _values, result) 1628 1631 result = val[0] … … 1632 1635 .,., 1633 1636 1634 module_eval(<<'.,.,', 'parser.y', 299)1637 module_eval(<<'.,.,', 'parser.y', 307) 1635 1638 def _reduce_41(val, _values, result) 1636 1639 result = val[0] … … 1640 1643 .,., 1641 1644 1642 module_eval(<<'.,.,', 'parser.y', 3 03)1645 module_eval(<<'.,.,', 'parser.y', 311) 1643 1646 def _reduce_42(val, _values, result) 1644 1647 result = val[0] … … 1652 1655 # reduce 44 omitted 1653 1656 1654 module_eval(<<'.,.,', 'parser.y', 3 36)1657 module_eval(<<'.,.,', 'parser.y', 344) 1655 1658 def _reduce_45(val, _values, result) 1656 1659 result = val[1] … … 1660 1663 .,., 1661 1664 1662 module_eval(<<'.,.,', 'parser.y', 3 42)1665 module_eval(<<'.,.,', 'parser.y', 350) 1663 1666 def _reduce_46(val, _values, result) 1664 1667 result = {:type_identifier => val[1], :c_occurrences => val[2], :absolute_path => val[3] } … … 1670 1673 # reduce 47 omitted 1671 1674 1672 module_eval(<<'.,.,', 'parser.y', 3 49)1675 module_eval(<<'.,.,', 'parser.y', 357) 1673 1676 def _reduce_48(val, _values, result) 1674 1677 result = OpenEhr::AM::Archetype::ConstraintModel::ARCHETYPE_SLOT.create do |archetype_slot| … … 1683 1686 .,., 1684 1687 1685 module_eval(<<'.,.,', 'parser.y', 3 58)1688 module_eval(<<'.,.,', 'parser.y', 366) 1686 1689 def _reduce_49(val, _values, result) 1687 1690 result = {:c_archetype_slot_id => val[0],:c_occurrences => val[1]} … … 1691 1694 .,., 1692 1695 1693 module_eval(<<'.,.,', 'parser.y', 3 63)1696 module_eval(<<'.,.,', 'parser.y', 371) 1694 1697 def _reduce_50(val, _values, result) 1695 1698 result = val[1] … … 1703 1706 # reduce 52 omitted 1704 1707 1705 module_eval(<<'.,.,', 'parser.y', 37 1)1708 module_eval(<<'.,.,', 'parser.y', 379) 1706 1709 def _reduce_53(val, _values, result) 1707 1710 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_PRIMITIVE)} … … 1714 1717 .,., 1715 1718 1716 module_eval(<<'.,.,', 'parser.y', 3 79)1719 module_eval(<<'.,.,', 'parser.y', 387) 1717 1720 def _reduce_54(val, _values, result) 1718 1721 @@logger.debug("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}") … … 1727 1730 .,., 1728 1731 1729 module_eval(<<'.,.,', 'parser.y', 3 88)1732 module_eval(<<'.,.,', 'parser.y', 396) 1730 1733 def _reduce_55(val, _values, result) 1731 1734 @@logger.debug("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}") … … 1736 1739 .,., 1737 1740 1738 module_eval(<<'.,.,', 'parser.y', 393)1741 module_eval(<<'.,.,', 'parser.y', 401) 1739 1742 def _reduce_56(val, _values, result) 1740 1743 @@logger.debug("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}") … … 1745 1748 .,., 1746 1749 1747 module_eval(<<'.,.,', 'parser.y', 398)1750 module_eval(<<'.,.,', 'parser.y', 406) 1748 1751 def _reduce_57(val, _values, result) 1749 1752 @@logger.debug("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}") … … 1754 1757 .,., 1755 1758 1756 module_eval(<<'.,.,', 'parser.y', 4 03)1759 module_eval(<<'.,.,', 'parser.y', 411) 1757 1760 def _reduce_58(val, _values, result) 1758 1761 @@logger.debug("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}") … … 1763 1766 .,., 1764 1767 1765 module_eval(<<'.,.,', 'parser.y', 4 08)1768 module_eval(<<'.,.,', 'parser.y', 416) 1766 1769 def _reduce_59(val, _values, result) 1767 1770 @@logger.debug("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}") … … 1772 1775 .,., 1773 1776 1774 module_eval(<<'.,.,', 'parser.y', 4 13)1777 module_eval(<<'.,.,', 'parser.y', 421) 1775 1778 def _reduce_60(val, _values, result) 1776 1779 @@logger.debug("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}") … … 1781 1784 .,., 1782 1785 1783 module_eval(<<'.,.,', 'parser.y', 4 18)1786 module_eval(<<'.,.,', 'parser.y', 426) 1784 1787 def _reduce_61(val, _values, result) 1785 1788 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN)} … … 1793 1796 # reduce 62 omitted 1794 1797 1795 module_eval(<<'.,.,', 'parser.y', 43 0)1798 module_eval(<<'.,.,', 'parser.y', 438) 1796 1799 def _reduce_63(val, _values, result) 1797 1800 result = [val[0]] … … 1801 1804 .,., 1802 1805 1803 module_eval(<<'.,.,', 'parser.y', 4 34)1806 module_eval(<<'.,.,', 'parser.y', 442) 1804 1807 def _reduce_64(val, _values, result) 1805 1808 result = (val[0] << val[1]) … … 1809 1812 .,., 1810 1813 1811 module_eval(<<'.,.,', 'parser.y', 44 0)1814 module_eval(<<'.,.,', 'parser.y', 448) 1812 1815 def _reduce_65(val, _values, result) 1813 1816 @@logger.debug("#{__FILE__}:#{__LINE__}:c_attribute: #{val[0]} matches #{val[3]}") … … 1821 1824 .,., 1822 1825 1823 module_eval(<<'.,.,', 'parser.y', 4 48)1826 module_eval(<<'.,.,', 'parser.y', 456) 1824 1827 def _reduce_66(val, _values, result) 1825 1828 @@logger.debug("c_attribute: #{val[0]} matches #{val[3]}}") … … 1831 1834 .,., 1832 1835 1833 module_eval(<<'.,.,', 'parser.y', 4 55)1836 module_eval(<<'.,.,', 'parser.y', 463) 1834 1837 def _reduce_67(val, _values, result) 1835 1838 @@logger.debug("c_attribute: #{val[0]} matches #{val[5]}}") … … 1841 1844 .,., 1842 1845 1843 module_eval(<<'.,.,', 'parser.y', 46 1)1846 module_eval(<<'.,.,', 'parser.y', 469) 1844 1847 def _reduce_68(val, _values, result) 1845 1848 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEhr::AM::Archetype::ConstraintModel::C_ATTRIBUTE)} … … 1850 1853 .,., 1851 1854 1852 module_eval(<<'.,.,', 'parser.y', 4 68)1855 module_eval(<<'.,.,', 'parser.y', 476) 1853 1856 def _reduce_69(val, _values, result) 1854 1857 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}") … … 1863 1866 .,., 1864 1867 1865 module_eval(<<'.,.,', 'parser.y', 4 77)1868 module_eval(<<'.,.,', 'parser.y', 485) 1866 1869 def _reduce_70(val, _values, result) 1867 1870 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEhr::AM::Archetype::ConstraintModel::CARDINALITY) } … … 1877 1880 .,., 1878 1881 1879 module_eval(<<'.,.,', 'parser.y', 4 88)1882 module_eval(<<'.,.,', 'parser.y', 496) 1880 1883 def _reduce_71(val, _values, result) 1881 1884 result = Array[val[0]] … … 1885 1888 .,., 1886 1889 1887 module_eval(<<'.,.,', 'parser.y', 492)1890 module_eval(<<'.,.,', 'parser.y', 500) 1888 1891 def _reduce_72(val, _values, result) 1889 1892 result = (val[0] << val[1]) … … 1893 1896 .,., 1894 1897 1895 module_eval(<<'.,.,', 'parser.y', 496)1898 module_eval(<<'.,.,', 'parser.y', 504) 1896 1899 def _reduce_73(val, _values, result) 1897 1900 result = Array[val[0]] … … 1903 1906 # reduce 74 omitted 1904 1907 1905 module_eval(<<'.,.,', 'parser.y', 5 02)1908 module_eval(<<'.,.,', 'parser.y', 510) 1906 1909 def _reduce_75(val, _values, result) 1907 1910 @@logger.debug("#{__FILE__}:#{__LINE__}: c_includes: assertions = #{val[1]}") … … 1914 1917 # reduce 76 omitted 1915 1918 1916 module_eval(<<'.,.,', 'parser.y', 51 1)1919 module_eval(<<'.,.,', 'parser.y', 519) 1917 1920 def _reduce_77(val, _values, result) 1918 1921 @@logger.debug("#{__FILE__}:#{__LINE__}: c_excludes: assertions = #{val[1]}") … … 1939 1942 # reduce 85 omitted 1940 1943 1941 module_eval(<<'.,.,', 'parser.y', 5 34)1944 module_eval(<<'.,.,', 'parser.y', 542) 1942 1945 def _reduce_86(val, _values, result) 1943 1946 dadl_section = val[1] 1944 result = OpenEhr::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new 1947 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_ontology: dadl_section = #{val[1].to_yaml}") 1948 args = Hash.new 1949 dadl_section.each do |item| 1950 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_description: item[:object_block] = #{item[:object_block].to_yaml} at #{@filename}:#{@lineno}") 1951 case item[:attr_id] 1952 when "terminologies_available" 1953 unless item[:object_block][:type_identifier] 1954 args.merge!(Hash[:terminologies_available => item[:object_block][:untyped_primitive_object_block]]) 1955 #args.merge!(Hash[:terminologies_available => item[:object_block]]) 1956 else 1957 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 1958 end 1959 when "term_definitions" 1960 unless item[:object_block][:type_identifier] 1961 args.merge!(Hash[:term_definitions => item[:object_block][:untyped_multiple_attr_object_block]]) 1962 #args.merge!(Hash[:term_definitions => item[:object_block]]) 1963 else 1964 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 1965 end 1966 when "term_binding" 1967 unless item[:object_block][:type_identifier] 1968 args.merge!(Hash[:term_binding => item[:object_block][:untyped_multiple_attr_object_block]]) 1969 #args.merge!(Hash[:term_binding => item[:object_block]]) 1970 else 1971 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 1972 end 1973 else 1974 raise OpenEhr::ADL::Exception::Parser::Error, "Unknown case #{item[:attr_id]} at #{@filename}:#{@lineno} " 1975 end 1976 end 1977 1978 result = OpenEhr::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new(args) 1945 1979 1946 1980 result … … 1952 1986 # reduce 88 omitted 1953 1987 1954 module_eval(<<'.,.,', 'parser.y', 5 44)1988 module_eval(<<'.,.,', 'parser.y', 583) 1955 1989 def _reduce_89(val, _values, result) 1956 #@@logger.debug("#{__FILE__}:#{__LINE__}:dadl_sectionattr_vals = \n#{val[0].to_yaml}")1990 @@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section::attr_vals = \n#{val[0].to_yaml}") 1957 1991 result = val[0] 1958 1992 … … 1961 1995 .,., 1962 1996 1963 module_eval(<<'.,.,', 'parser.y', 5 49)1997 module_eval(<<'.,.,', 'parser.y', 588) 1964 1998 def _reduce_90(val, _values, result) 1965 #@@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section 1999 #@@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section::complex_object_block = \n#{val[0].to_yaml}") 1966 2000 result = val[0] 1967 2001 … … 1970 2004 .,., 1971 2005 1972 module_eval(<<'.,.,', 'parser.y', 5 56)2006 module_eval(<<'.,.,', 'parser.y', 595) 1973 2007 def _reduce_91(val, _values, result) 1974 result = Array[val[0]] 1975 1976 result 1977 end 1978 .,., 1979 1980 module_eval(<<'.,.,', 'parser.y', 560) 2008 attr_val = val[0] 2009 result = Hash[attr_val[:attr_id] => attr_val[:object_block]] 2010 2011 result 2012 end 2013 .,., 2014 2015 module_eval(<<'.,.,', 'parser.y', 600) 1981 2016 def _reduce_92(val, _values, result) 1982 result = (val[0] <<val[1])1983 1984 result 1985 end 1986 .,., 1987 1988 module_eval(<<'.,.,', 'parser.y', 564)2017 result = val[0].merge!(val[1]) 2018 2019 result 2020 end 2021 .,., 2022 2023 module_eval(<<'.,.,', 'parser.y', 604) 1989 2024 def _reduce_93(val, _values, result) 1990 result = (val[0] <<val[2])1991 1992 result 1993 end 1994 .,., 1995 1996 module_eval(<<'.,.,', 'parser.y', 569)2025 result = val[0].merge!(val[2]) 2026 2027 result 2028 end 2029 .,., 2030 2031 module_eval(<<'.,.,', 'parser.y', 621) 1997 2032 def _reduce_94(val, _values, result) 1998 @@logger.debug("#{__FILE__}:#{__LINE__}:attr_val\n attr_id = #{val[0] }, object_block = #{val[1]}")2033 @@logger.debug("#{__FILE__}:#{__LINE__}:attr_val\n attr_id = #{val[0].to_yaml},\n object_block = #{val[2].to_yaml}") 1999 2034 result = {:attr_id => val[0], :object_block => val[2]} 2000 2035 … … 2003 2038 .,., 2004 2039 2005 module_eval(<<'.,.,', 'parser.y', 575)2040 module_eval(<<'.,.,', 'parser.y', 627) 2006 2041 def _reduce_95(val, _values, result) 2007 2042 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}") … … 2014 2049 # reduce 96 omitted 2015 2050 2016 module_eval(<<'.,.,', 'parser.y', 582)2051 module_eval(<<'.,.,', 'parser.y', 634) 2017 2052 def _reduce_97(val, _values, result) 2018 2053 result = val[0] … … 2022 2057 .,., 2023 2058 2024 module_eval(<<'.,.,', 'parser.y', 586)2059 module_eval(<<'.,.,', 'parser.y', 638) 2025 2060 def _reduce_98(val, _values, result) 2026 2061 result = val[0] … … 2030 2065 .,., 2031 2066 2032 module_eval(<<'.,.,', 'parser.y', 591)2067 module_eval(<<'.,.,', 'parser.y', 643) 2033 2068 def _reduce_99(val, _values, result) 2034 2069 result = val[0] … … 2038 2073 .,., 2039 2074 2040 module_eval(<<'.,.,', 'parser.y', 595)2075 module_eval(<<'.,.,', 'parser.y', 647) 2041 2076 def _reduce_100(val, _values, result) 2042 2077 result = val[0] … … 2046 2081 .,., 2047 2082 2048 module_eval(<<'.,.,', 'parser.y', 6 00)2083 module_eval(<<'.,.,', 'parser.y', 652) 2049 2084 def _reduce_101(val, _values, result) 2050 result = {:untyped_multiple_attr_object_block => val[0]} 2051 2052 result 2053 end 2054 .,., 2055 2056 module_eval(<<'.,.,', 'parser.y', 604) 2085 @@logger.debug("#{__FILE__}:#{__LINE__}:multiple_attr_object_block::attr_val\n untyped_multiple_attr_object_block = #{val[0].to_yaml}") 2086 result = {:untyped_multiple_attr_object_block => val[0]} 2087 2088 result 2089 end 2090 .,., 2091 2092 module_eval(<<'.,.,', 'parser.y', 657) 2057 2093 def _reduce_102(val, _values, result) 2058 2094 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]} … … 2062 2098 .,., 2063 2099 2064 module_eval(<<'.,.,', 'parser.y', 6 09)2100 module_eval(<<'.,.,', 'parser.y', 662) 2065 2101 def _reduce_103(val, _values, result) 2066 result = val[1] 2067 2068 result 2069 end 2070 .,., 2071 2072 module_eval(<<'.,.,', 'parser.y', 614) 2102 @@logger.debug("#{__FILE__}:#{__LINE__}:untyped_multiple_attr_object_block::keyed_objects\n keyed_objects = #{val[1].to_yaml}") 2103 result = val[1] 2104 2105 result 2106 end 2107 .,., 2108 2109 module_eval(<<'.,.,', 'parser.y', 668) 2073 2110 def _reduce_104(val, _values, result) 2074 2111 result = val[0] … … 2078 2115 .,., 2079 2116 2080 module_eval(<<'.,.,', 'parser.y', 6 19)2117 module_eval(<<'.,.,', 'parser.y', 673) 2081 2118 def _reduce_105(val, _values, result) 2082 2119 result = Array[val[0]] … … 2086 2123 .,., 2087 2124 2088 module_eval(<<'.,.,', 'parser.y', 6 23)2125 module_eval(<<'.,.,', 'parser.y', 677) 2089 2126 def _reduce_106(val, _values, result) 2090 2127 result = (val[0] << val[1]) … … 2094 2131 .,., 2095 2132 2096 module_eval(<<'.,.,', 'parser.y', 6 28)2133 module_eval(<<'.,.,', 'parser.y', 682) 2097 2134 def _reduce_107(val, _values, result) 2098 2135 #@@logger.debug("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]} at #{@filename}:#{@lineno}") 2099 2136 #result = {:object_key => val[0], :object_block => val[2]} 2100 unless val[2][:type_identifier] 2101 result = Hash[val[0] => val[2][:untyped_primitive_object_block]] 2137 object_key,object_block = val[0],val[2] 2138 unless object_block[:type_identifier] 2139 result = Hash[val[0] => object_block[:untyped_primitive_object_block]] 2102 2140 else 2103 2141 raise OpenEhr::ADL::Exception::Parser::Error, "Missing type_identifier at #{@filename}:#{@lineno} " … … 2108 2146 .,., 2109 2147 2110 module_eval(<<'.,.,', 'parser.y', 6 39)2148 module_eval(<<'.,.,', 'parser.y', 694) 2111 2149 def _reduce_108(val, _values, result) 2112 2150 @@logger.debug("object_key: [#{val[1]}] at #{@filename}:#{@lineno}") … … 2117 2155 .,., 2118 2156 2119 module_eval(<<'.,.,', 'parser.y', 645)2157 module_eval(<<'.,.,', 'parser.y', 700) 2120 2158 def _reduce_109(val, _values, result) 2121 2159 result = {:untyped_single_attr_object_block => val[0]} … … 2125 2163 .,., 2126 2164 2127 module_eval(<<'.,.,', 'parser.y', 649)2165 module_eval(<<'.,.,', 'parser.y', 704) 2128 2166 def _reduce_110(val, _values, result) 2129 2167 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]} … … 2133 2171 .,., 2134 2172 2135 module_eval(<<'.,.,', 'parser.y', 654)2173 module_eval(<<'.,.,', 'parser.y', 709) 2136 2174 def _reduce_111(val, _values, result) 2137 2175 @@logger.debug("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}") 2138 #result = {:single_attr_object_complex_head => val[0]}2139 2176 result = [] 2140 2177 … … 2143 2180 .,., 2144 2181 2145 module_eval(<<'.,.,', 'parser.y', 660)2182 module_eval(<<'.,.,', 'parser.y', 714) 2146 2183 def _reduce_112(val, _values, result) 2147 @@logger.debug("#{__FILE__}:#{__LINE__}: attr_vals = #{val[1]} at #{@filename}:#{@lineno}") 2148 #result = {:single_attr_object_complex_head => val[0], :attr_vals => val[1]} 2184 @@logger.debug("#{__FILE__}:#{__LINE__}: untyped_single_attr_object_block::attr_vals = \n#{val[1].to_yaml} at #{@filename}:#{@lineno}") 2149 2185 result = val[1] 2150 2186 … … 2155 2191 # reduce 113 omitted 2156 2192 2157 module_eval(<<'.,.,', 'parser.y', 667)2193 module_eval(<<'.,.,', 'parser.y', 721) 2158 2194 def _reduce_114(val, _values, result) 2159 2195 @@logger.debug("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}") … … 2164 2200 .,., 2165 2201 2166 module_eval(<<'.,.,', 'parser.y', 672)2202 module_eval(<<'.,.,', 'parser.y', 726) 2167 2203 def _reduce_115(val, _values, result) 2168 2204 @@logger.debug("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}") … … 2173 2209 .,., 2174 2210 2175 module_eval(<<'.,.,', 'parser.y', 677)2211 module_eval(<<'.,.,', 'parser.y', 731) 2176 2212 def _reduce_116(val, _values, result) 2177 2213 #@@logger.debug("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}") … … 2182 2218 .,., 2183 2219 2184 module_eval(<<'.,.,', 'parser.y', 682)2220 module_eval(<<'.,.,', 'parser.y', 736) 2185 2221 def _reduce_117(val, _values, result) 2186 2222 result = val[0] … … 2190 2226 .,., 2191 2227 2192 module_eval(<<'.,.,', 'parser.y', 686)2228 module_eval(<<'.,.,', 'parser.y', 740) 2193 2229 def _reduce_118(val, _values, result) 2194 2230 result = val[0] … … 2198 2234 .,., 2199 2235 2200 module_eval(<<'.,.,', 'parser.y', 690)2236 module_eval(<<'.,.,', 'parser.y', 744) 2201 2237 def _reduce_119(val, _values, result) 2202 2238 result = val[0] … … 2206 2242 .,., 2207 2243 2208 module_eval(<<'.,.,', 'parser.y', 694)2244 module_eval(<<'.,.,', 'parser.y', 748) 2209 2245 def _reduce_120(val, _values, result) 2210 2246 result = val[0] … … 2214 2250 .,., 2215 2251 2216 module_eval(<<'.,.,', 'parser.y', 698)2252 module_eval(<<'.,.,', 'parser.y', 752) 2217 2253 def _reduce_121(val, _values, result) 2218 2254 result = val[0] … … 2222 2258 .,., 2223 2259 2224 module_eval(<<'.,.,', 'parser.y', 7 02)2260 module_eval(<<'.,.,', 'parser.y', 756) 2225 2261 def _reduce_122(val, _values, result) 2226 2262 @@logger.debug("string_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2231 2267 .,., 2232 2268 2233 module_eval(<<'.,.,', 'parser.y', 7 07)2269 module_eval(<<'.,.,', 'parser.y', 761) 2234 2270 def _reduce_123(val, _values, result) 2235 2271 @@logger.debug("integer_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2240 2276 .,., 2241 2277 2242 module_eval(<<'.,.,', 'parser.y', 7 12)2278 module_eval(<<'.,.,', 'parser.y', 766) 2243 2279 def _reduce_124(val, _values, result) 2244 2280 @@logger.debug("real_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2249 2285 .,., 2250 2286 2251 module_eval(<<'.,.,', 'parser.y', 7 17)2287 module_eval(<<'.,.,', 'parser.y', 771) 2252 2288 def _reduce_125(val, _values, result) 2253 2289 @@logger.debug("boolean_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2258 2294 .,., 2259 2295 2260 module_eval(<<'.,.,', 'parser.y', 7 22)2296 module_eval(<<'.,.,', 'parser.y', 776) 2261 2297 def _reduce_126(val, _values, result) 2262 2298 @@logger.debug("character_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2267 2303 .,., 2268 2304 2269 module_eval(<<'.,.,', 'parser.y', 7 27)2305 module_eval(<<'.,.,', 'parser.y', 781) 2270 2306 def _reduce_127(val, _values, result) 2271 2307 @@logger.debug("date_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2276 2312 .,., 2277 2313 2278 module_eval(<<'.,.,', 'parser.y', 7 32)2314 module_eval(<<'.,.,', 'parser.y', 786) 2279 2315 def _reduce_128(val, _values, result) 2280 2316 @@logger.debug("time_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2285 2321 .,., 2286 2322 2287 module_eval(<<'.,.,', 'parser.y', 7 37)2323 module_eval(<<'.,.,', 'parser.y', 791) 2288 2324 def _reduce_129(val, _values, result) 2289 2325 @@logger.debug("date_time_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2294 2330 .,., 2295 2331 2296 module_eval(<<'.,.,', 'parser.y', 7 42)2332 module_eval(<<'.,.,', 'parser.y', 796) 2297 2333 def _reduce_130(val, _values, result) 2298 2334 @@logger.debug("duration_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2303 2339 .,., 2304 2340 2305 module_eval(<<'.,.,', 'parser.y', 747)2341 module_eval(<<'.,.,', 'parser.y', 801) 2306 2342 def _reduce_131(val, _values, result) 2307 2343 @@logger.debug("uri_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2312 2348 .,., 2313 2349 2314 module_eval(<<'.,.,', 'parser.y', 753)2350 module_eval(<<'.,.,', 'parser.y', 807) 2315 2351 def _reduce_132(val, _values, result) 2316 2352 @@logger.debug("string_list_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2321 2357 .,., 2322 2358 2323 module_eval(<<'.,.,', 'parser.y', 758)2359 module_eval(<<'.,.,', 'parser.y', 812) 2324 2360 def _reduce_133(val, _values, result) 2325 2361 result = val[0] … … 2329 2365 .,., 2330 2366 2331 module_eval(<<'.,.,', 'parser.y', 762)2367 module_eval(<<'.,.,', 'parser.y', 816) 2332 2368 def _reduce_134(val, _values, result) 2333 2369 result = val[0] … … 2337 2373 .,., 2338 2374 2339 module_eval(<<'.,.,', 'parser.y', 766)2375 module_eval(<<'.,.,', 'parser.y', 820) 2340 2376 def _reduce_135(val, _values, result) 2341 2377 result = val[0] … … 2345 2381 .,., 2346 2382 2347 module_eval(<<'.,.,', 'parser.y', 770)2383 module_eval(<<'.,.,', 'parser.y', 824) 2348 2384 def _reduce_136(val, _values, result) 2349 2385 result = val[0] … … 2353 2389 .,., 2354 2390 2355 module_eval(<<'.,.,', 'parser.y', 774)2391 module_eval(<<'.,.,', 'parser.y', 828) 2356 2392 def _reduce_137(val, _values, result) 2357 2393 result = val[0] … … 2361 2397 .,., 2362 2398 2363 module_eval(<<'.,.,', 'parser.y', 778)2399 module_eval(<<'.,.,', 'parser.y', 832) 2364 2400 def _reduce_138(val, _values, result) 2365 2401 result = val[0] … … 2369 2405 .,., 2370 2406 2371 module_eval(<<'.,.,', 'parser.y', 782)2407 module_eval(<<'.,.,', 'parser.y', 836) 2372 2408 def _reduce_139(val, _values, result) 2373 2409 result = val[0] … … 2377 2413 .,., 2378 2414 2379 module_eval(<<'.,.,', 'parser.y', 786)2415 module_eval(<<'.,.,', 'parser.y', 840) 2380 2416 def _reduce_140(val, _values, result) 2381 2417 result = val[0] … … 2397 2433 # reduce 146 omitted 2398 2434 2399 module_eval(<<'.,.,', 'parser.y', 798)2435 module_eval(<<'.,.,', 'parser.y', 852) 2400 2436 def _reduce_147(val, _values, result) 2401 2437 @@logger.debug("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") … … 2406 2442 .,., 2407 2443 2408 module_eval(<<'.,.,', 'parser.y', 8 03)2444 module_eval(<<'.,.,', 'parser.y', 857) 2409 2445 def _reduce_148(val, _values, result) 2410 2446 @@logger.debug("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") … … 2415 2451 .,., 2416 2452 2417 module_eval(<<'.,.,', 'parser.y', 8 09)2453 module_eval(<<'.,.,', 'parser.y', 863) 2418 2454 def _reduce_149(val, _values, result) 2419 2455 @@logger.debug("V_STRING: #{val[0]} at #{@filename}:#{@lineno}") … … 2424 2460 .,., 2425 2461 2426 module_eval(<<'.,.,', 'parser.y', 8 15)2462 module_eval(<<'.,.,', 'parser.y', 869) 2427 2463 def _reduce_150(val, _values, result) 2428 2464 result = [val[0],val[2]] … … 2432 2468 .,., 2433 2469 2434 module_eval(<<'.,.,', 'parser.y', 8 19)2470 module_eval(<<'.,.,', 'parser.y', 873) 2435 2471 def _reduce_151(val, _values, result) 2436 2472 result = val[0] << val[2] … … 2440 2476 .,., 2441 2477 2442 module_eval(<<'.,.,', 'parser.y', 8 23)2478 module_eval(<<'.,.,', 'parser.y', 877) 2443 2479 def _reduce_152(val, _values, result) 2444 2480 result = val[0] … … 2448 2484 .,., 2449 2485 2450 module_eval(<<'.,.,', 'parser.y', 8 28)2486 module_eval(<<'.,.,', 'parser.y', 882) 2451 2487 def _reduce_153(val, _values, result) 2452 2488 begin … … 2461 2497 .,., 2462 2498 2463 module_eval(<<'.,.,', 'parser.y', 8 37)2499 module_eval(<<'.,.,', 'parser.y', 891) 2464 2500 def _reduce_154(val, _values, result) 2465 2501 begin … … 2474 2510 .,., 2475 2511 2476 module_eval(<<'.,.,', 'parser.y', 846)2512 module_eval(<<'.,.,', 'parser.y', 900) 2477 2513 def _reduce_155(val, _values, result) 2478 2514 begin … … 2511 2547 # reduce 167 omitted 2512 2548 2513 module_eval(<<'.,.,', 'parser.y', 870)2549 module_eval(<<'.,.,', 'parser.y', 924) 2514 2550 def _reduce_168(val, _values, result) 2515 2551 begin … … 2524 2560 .,., 2525 2561 2526 module_eval(<<'.,.,', 'parser.y', 879)2562 module_eval(<<'.,.,', 'parser.y', 933) 2527 2563 def _reduce_169(val, _values, result) 2528 2564 begin … … 2537 2573 .,., 2538 2574 2539 module_eval(<<'.,.,', 'parser.y', 888)2575 module_eval(<<'.,.,', 'parser.y', 942) 2540 2576 def _reduce_170(val, _values, result) 2541 2577 begin … … 2574 2610 # reduce 182 omitted 2575 2611 2576 module_eval(<<'.,.,', 'parser.y', 9 13)2612 module_eval(<<'.,.,', 'parser.y', 967) 2577 2613 def _reduce_183(val, _values, result) 2578 2614 result = true … … 2582 2618 .,., 2583 2619 2584 module_eval(<<'.,.,', 'parser.y', 9 17)2620 module_eval(<<'.,.,', 'parser.y', 971) 2585 2621 def _reduce_184(val, _values, result) 2586 2622 result = false … … 2604 2640 # reduce 191 omitted 2605 2641 2606 module_eval(<<'.,.,', 'parser.y', 9 32)2642 module_eval(<<'.,.,', 'parser.y', 986) 2607 2643 def _reduce_192(val, _values, result) 2608 2644 result = val[0] … … 2662 2698 # reduce 217 omitted 2663 2699 2664 module_eval(<<'.,.,', 'parser.y', 967)2700 module_eval(<<'.,.,', 'parser.y', 1021) 2665 2701 def _reduce_218(val, _values, result) 2666 2702 @@logger.debug("V_ISO8601_EXTENDED_DATE_TIME: #{val[0]} at #{@filename}:#{@lineno}") … … 2695 2731 # reduce 230 omitted 2696 2732 2697 module_eval(<<'.,.,', 'parser.y', 987)2733 module_eval(<<'.,.,', 'parser.y', 1041) 2698 2734 def _reduce_231(val, _values, result) 2699 2735 @@logger.debug("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}") … … 2728 2764 # reduce 243 omitted 2729 2765 2730 module_eval(<<'.,.,', 'parser.y', 10 07)2766 module_eval(<<'.,.,', 'parser.y', 1061) 2731 2767 def _reduce_244(val, _values, result) 2732 2768 @@logger.debug("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}") … … 2743 2779 # reduce 247 omitted 2744 2780 2745 module_eval(<<'.,.,', 'parser.y', 10 17)2781 module_eval(<<'.,.,', 'parser.y', 1071) 2746 2782 def _reduce_248(val, _values, result) 2747 2783 @@logger.debug("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}") … … 2768 2804 # reduce 256 omitted 2769 2805 2770 module_eval(<<'.,.,', 'parser.y', 10 40)2806 module_eval(<<'.,.,', 'parser.y', 1094) 2771 2807 def _reduce_257(val, _values, result) 2772 2808 @@logger.debug("#{__FILE__}:#{__LINE__}, boolean_node: relative_path = #{val[0]}, regexp_body => #{val[3]} at #{@filename}") … … 2833 2869 # reduce 285 omitted 2834 2870 2835 module_eval(<<'.,.,', 'parser.y', 1 087)2871 module_eval(<<'.,.,', 'parser.y', 1141) 2836 2872 def _reduce_286(val, _values, result) 2837 2873 @@logger.debug("#{__FILE__}:#{__LINE__}, relative_path = #{val[0]}") … … 2842 2878 .,., 2843 2879 2844 module_eval(<<'.,.,', 'parser.y', 1 092)2880 module_eval(<<'.,.,', 'parser.y', 1146) 2845 2881 def _reduce_287(val, _values, result) 2846 2882 @@logger.debug("#{__FILE__}:#{__LINE__}, relative_path = #{val[0]}/#{val[2]}") … … 2851 2887 .,., 2852 2888 2853 module_eval(<<'.,.,', 'parser.y', 1 098)2889 module_eval(<<'.,.,', 'parser.y', 1152) 2854 2890 def _reduce_288(val, _values, result) 2855 2891 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 2860 2896 .,., 2861 2897 2862 module_eval(<<'.,.,', 'parser.y', 11 03)2898 module_eval(<<'.,.,', 'parser.y', 1157) 2863 2899 def _reduce_289(val, _values, result) 2864 2900 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 2869 2905 .,., 2870 2906 2871 module_eval(<<'.,.,', 'parser.y', 11 15)2907 module_eval(<<'.,.,', 'parser.y', 1169) 2872 2908 def _reduce_290(val, _values, result) 2873 2909 result = Range.new(1,1) … … 2877 2913 .,., 2878 2914 2879 module_eval(<<'.,.,', 'parser.y', 11 19)2915 module_eval(<<'.,.,', 'parser.y', 1173) 2880 2916 def _reduce_291(val, _values, result) 2881 2917 result = val[3] … … 2885 2921 .,., 2886 2922 2887 module_eval(<<'.,.,', 'parser.y', 11 24)2923 module_eval(<<'.,.,', 'parser.y', 1178) 2888 2924 def _reduce_292(val, _values, result) 2889 2925 begin … … 2898 2934 .,., 2899 2935 2900 module_eval(<<'.,.,', 'parser.y', 11 33)2936 module_eval(<<'.,.,', 'parser.y', 1187) 2901 2937 def _reduce_293(val, _values, result) 2902 2938 begin … … 2912 2948 .,., 2913 2949 2914 module_eval(<<'.,.,', 'parser.y', 11 44)2950 module_eval(<<'.,.,', 'parser.y', 1198) 2915 2951 def _reduce_294(val, _values, result) 2916 2952 result = OpenEhr::AM::Archetype::ConstraintModel::CARDINALITY.new … … 2920 2956 .,., 2921 2957 2922 module_eval(<<'.,.,', 'parser.y', 1 149)2958 module_eval(<<'.,.,', 'parser.y', 1203) 2923 2959 def _reduce_295(val, _values, result) 2924 2960 result = val[0] … … 2942 2978 # reduce 302 omitted 2943 2979 2944 module_eval(<<'.,.,', 'parser.y', 1 161)2980 module_eval(<<'.,.,', 'parser.y', 1215) 2945 2981 def _reduce_303(val, _values, result) 2946 2982 result = val[0] … … 2950 2986 .,., 2951 2987 2952 module_eval(<<'.,.,', 'parser.y', 1 165)2988 module_eval(<<'.,.,', 'parser.y', 1219) 2953 2989 def _reduce_304(val, _values, result) 2954 2990 result = val[0] … … 2960 2996 # reduce 305 omitted 2961 2997 2962 module_eval(<<'.,.,', 'parser.y', 1 172)2998 module_eval(<<'.,.,', 'parser.y', 1226) 2963 2999 def _reduce_306(val, _values, result) 2964 3000 case val[3] … … 2975 3011 # reduce 307 omitted 2976 3012 2977 module_eval(<<'.,.,', 'parser.y', 1 183)3013 module_eval(<<'.,.,', 'parser.y', 1237) 2978 3014 def _reduce_308(val, _values, result) 2979 3015 result = val[0] … … 2983 3019 .,., 2984 3020 2985 module_eval(<<'.,.,', 'parser.y', 1 187)3021 module_eval(<<'.,.,', 'parser.y', 1241) 2986 3022 def _reduce_309(val, _values, result) 2987 3023 result = OpenEhr::RM::Support::AssumedTypes::Interval.new(val[0], val[2]) … … 3077 3113 # reduce 352 omitted 3078 3114 3079 module_eval(<<'.,.,', 'parser.y', 1 253)3115 module_eval(<<'.,.,', 'parser.y', 1307) 3080 3116 def _reduce_353(val, _values, result) 3081 3117 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN.new(:true_valid => true) … … 3085 3121 .,., 3086 3122 3087 module_eval(<<'.,.,', 'parser.y', 1 257)3123 module_eval(<<'.,.,', 'parser.y', 1311) 3088 3124 def _reduce_354(val, _values, result) 3089 3125 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN.new(:true_valid => false) … … 3093 3129 .,., 3094 3130 3095 module_eval(<<'.,.,', 'parser.y', 1 261)3131 module_eval(<<'.,.,', 'parser.y', 1315) 3096 3132 def _reduce_355(val, _values, result) 3097 3133 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false) … … 3101 3137 .,., 3102 3138 3103 module_eval(<<'.,.,', 'parser.y', 1 265)3139 module_eval(<<'.,.,', 'parser.y', 1319) 3104 3140 def _reduce_356(val, _values, result) 3105 3141 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true) … … 3109 3145 .,., 3110 3146 3111 module_eval(<<'.,.,', 'parser.y', 1 270)3147 module_eval(<<'.,.,', 'parser.y', 1324) 3112 3148 def _reduce_357(val, _values, result) 3113 3149 result = val[0] … … 3117 3153 .,., 3118 3154 3119 module_eval(<<'.,.,', 'parser.y', 1 274)3155 module_eval(<<'.,.,', 'parser.y', 1328) 3120 3156 def _reduce_358(val, _values, result) 3121 3157 result = val[0] … … 3126 3162 .,., 3127 3163 3128 module_eval(<<'.,.,', 'parser.y', 1 279)3164 module_eval(<<'.,.,', 'parser.y', 1333) 3129 3165 def _reduce_359(val, _values, result) 3130 3166 raise 'Not implemented yet' … … 3144 3180 # reduce 364 omitted 3145 3181 3146 module_eval(<<'.,.,', 'parser.y', 1 291)3182 module_eval(<<'.,.,', 'parser.y', 1345) 3147 3183 def _reduce_365(val, _values, result) 3148 3184 @in_interval = false … … 3153 3189 .,., 3154 3190 3155 module_eval(<<'.,.,', 'parser.y', 1 298)3191 module_eval(<<'.,.,', 'parser.y', 1352) 3156 3192 def _reduce_366(val, _values, result) 3157 3193 result = val[0] … … 3161 3197 .,., 3162 3198 3163 module_eval(<<'.,.,', 'parser.y', 13 02)3199 module_eval(<<'.,.,', 'parser.y', 1356) 3164 3200 def _reduce_367(val, _values, result) 3165 3201 result = val[0] … … 3169 3205 .,., 3170 3206 3171 module_eval(<<'.,.,', 'parser.y', 13 08)3207 module_eval(<<'.,.,', 'parser.y', 1362) 3172 3208 def _reduce_368(val, _values, result) 3173 3209 @@logger.debug("#{__FILE__}:#{__LINE__}, START_TERM_CODE_CONSTRAINT = #{val[0]} at #{@filename}") … … 3186 3222 # reduce 371 omitted 3187 3223 3188 module_eval(<<'.,.,', 'parser.y', 13 24)3224 module_eval(<<'.,.,', 'parser.y', 1378) 3189 3225 def _reduce_372(val, _values, result) 3190 3226 result = val[0] … … 3194 3230 .,., 3195 3231 3196 module_eval(<<'.,.,', 'parser.y', 13 29)3232 module_eval(<<'.,.,', 'parser.y', 1383) 3197 3233 def _reduce_373(val, _values, result) 3198 3234 result = val[0] … … 3202 3238 .,., 3203 3239 3204 module_eval(<<'.,.,', 'parser.y', 13 33)3240 module_eval(<<'.,.,', 'parser.y', 1387) 3205 3241 def _reduce_374(val, _values, result) 3206 3242 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}") … … 3211 3247 .,., 3212 3248 3213 module_eval(<<'.,.,', 'parser.y', 13 44)3249 module_eval(<<'.,.,', 'parser.y', 1398) 3214 3250 def _reduce_375(val, _values, result) 3215 3251 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_DURATION.new #val[0] -
ruby/trunk/lib/adl_parser/lib/parser.y
r326 r328 127 127 | SYM_LANGUAGE dadl_section 128 128 { 129 if val[1][0][:attr_id] == "original_language" 130 result = {:arch_language => val[1][0][:object_block][:untyped_primitive_object_block]} 129 dadl_section = val[1] 130 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_language::dadl_section = \n#{dadl_section.to_yaml}") 131 case dadl_section[:attr_id] 132 when "translations" 133 result = {:arch_language => dadl_section[:object_block][:untyped_primitive_object_block]} 134 when "original_language" 135 result = {:arch_language => dadl_section[:object_block][:untyped_primitive_object_block]} 136 ### if val[1][:attr_id] == "original_language" 137 ### result = {:arch_language => val[0][:object_block][:untyped_primitive_object_block]} 131 138 else 132 raise OpenEhr::ADL::Exception::Parser::Error, "It should be 'original_language ' at #{@filename}:#{@lineno} "139 raise OpenEhr::ADL::Exception::Parser::Error, "It should be 'original_language, but was #{dadl_section[:attr_id]}' at #{@filename}:#{@lineno} " 133 140 end 134 141 } … … 144 151 args = Hash.new 145 152 val[1].each do |item| 146 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_description: item [:object_block] = #{item[:object_block].to_yaml} at #{@filename}:#{@lineno}")147 case item [:attr_id]153 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_description: item = #{item.to_yaml} at #{@filename}:#{@lineno}") 154 case item 148 155 when "original_author" 149 156 unless item[:object_block][:type_identifier] 150 args.merge!(Hash[:original_author => item[: object_block][:untyped_multiple_attr_object_block]])157 args.merge!(Hash[:original_author => item[:untyped_multiple_attr_object_block]]) 151 158 else 152 159 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 153 160 end 154 161 when "details" 155 unless item[:object_block][:type_identifier] 156 args.merge!(Hash[:details => item[:object_block][:untyped_multiple_attr_object_block]]) 162 unless item[:type_identifier] 163 args.merge!(Hash[:details => item[:untyped_multiple_attr_object_block]]) 164 #args.merge!(Hash[:details => item[:object_block]]) 157 165 else 158 166 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 159 167 end 160 168 when "lifecycle_state" 161 unless item[: object_block][:type_identifier]162 args.merge!(Hash[:lifecycle_state => item[: object_block][:untyped_primitive_object_block]])169 unless item[:type_identifier] 170 args.merge!(Hash[:lifecycle_state => item[:untyped_primitive_object_block]]) 163 171 else 164 172 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 165 173 end 166 174 when "other_contributors" 167 unless item[: object_block][:type_identifier]168 args.merge!(Hash[:other_contributors => item[: object_block][:untyped_multiple_attr_object_block]])175 unless item[:type_identifier] 176 args.merge!(Hash[:other_contributors => item[:untyped_multiple_attr_object_block]]) 169 177 else 170 178 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 171 179 end 172 180 when "other_details" 173 unless item[: object_block][:type_identifier]174 args.merge!(Hash[:other_contributors => item[: object_block][:untyped_multiple_attr_object_block]])181 unless item[:type_identifier] 182 args.merge!(Hash[:other_contributors => item[:untyped_multiple_attr_object_block]]) 175 183 else 176 184 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 177 185 end 178 186 else 179 raise OpenEhr::ADL::Exception::Parser::Error, "Unknown case #{item [:attr_id]} at #{@filename}:#{@lineno} "187 raise OpenEhr::ADL::Exception::Parser::Error, "Unknown case #{item} at #{@filename}:#{@lineno} " 180 188 end 181 189 end … … 534 542 { 535 543 dadl_section = val[1] 536 result = OpenEhr::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new 544 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_ontology: dadl_section = #{val[1].to_yaml}") 545 args = Hash.new 546 dadl_section.each do |item| 547 @@logger.debug("#{__FILE__}:#{__LINE__}: arch_description: item[:object_block] = #{item[:object_block].to_yaml} at #{@filename}:#{@lineno}") 548 case item[:attr_id] 549 when "terminologies_available" 550 unless item[:object_block][:type_identifier] 551 args.merge!(Hash[:terminologies_available => item[:object_block][:untyped_primitive_object_block]]) 552 #args.merge!(Hash[:terminologies_available => item[:object_block]]) 553 else 554 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 555 end 556 when "term_definitions" 557 unless item[:object_block][:type_identifier] 558 args.merge!(Hash[:term_definitions => item[:object_block][:untyped_multiple_attr_object_block]]) 559 #args.merge!(Hash[:term_definitions => item[:object_block]]) 560 else 561 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 562 end 563 when "term_binding" 564 unless item[:object_block][:type_identifier] 565 args.merge!(Hash[:term_binding => item[:object_block][:untyped_multiple_attr_object_block]]) 566 #args.merge!(Hash[:term_binding => item[:object_block]]) 567 else 568 raise OpenEhr::ADL::Exception::Parser::Error, "Needless type_identifier at #{@filename}:#{@lineno} " 569 end 570 else 571 raise OpenEhr::ADL::Exception::Parser::Error, "Unknown case #{item[:attr_id]} at #{@filename}:#{@lineno} " 572 end 573 end 574 575 result = OpenEhr::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new(args) 537 576 } 538 577 | SYM_ONTOLOGY error … … 543 582 | attr_vals 544 583 { 545 #@@logger.debug("#{__FILE__}:#{__LINE__}:dadl_sectionattr_vals = \n#{val[0].to_yaml}")584 @@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section::attr_vals = \n#{val[0].to_yaml}") 546 585 result = val[0] 547 586 } 548 587 | complex_object_block 549 588 { 550 #@@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section 589 #@@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section::complex_object_block = \n#{val[0].to_yaml}") 551 590 result = val[0] 552 591 } … … 555 594 attr_vals: attr_val 556 595 { 557 result = Array[val[0]] 596 attr_val = val[0] 597 result = Hash[attr_val[:attr_id] => attr_val[:object_block]] 558 598 } 559 599 | attr_vals attr_val 560 600 { 561 result = (val[0] <<val[1])601 result = val[0].merge!(val[1]) 562 602 } 563 603 | attr_vals Semicolon_code attr_val 564 604 { 565 result = (val[0] << val[2]) 566 } 605 result = val[0].merge!(val[2]) 606 } 607 ### attr_vals: attr_val 608 ### { 609 ### result = Array[val[0]] 610 ### } 611 ### | attr_vals attr_val 612 ### { 613 ### result = (val[0] << val[1]) 614 ### } 615 ### | attr_vals Semicolon_code attr_val 616 ### { 617 ### result = (val[0] << val[2]) 618 ### } 567 619 568 620 attr_val: attr_id SYM_EQ object_block 569 621 { 570 @@logger.debug("#{__FILE__}:#{__LINE__}:attr_val\n attr_id = #{val[0] }, object_block = #{val[1]}")622 @@logger.debug("#{__FILE__}:#{__LINE__}:attr_val\n attr_id = #{val[0].to_yaml},\n object_block = #{val[2].to_yaml}") 571 623 result = {:attr_id => val[0], :object_block => val[2]} 572 624 } … … 599 651 multiple_attr_object_block: untyped_multiple_attr_object_block 600 652 { 653 @@logger.debug("#{__FILE__}:#{__LINE__}:multiple_attr_object_block::attr_val\n untyped_multiple_attr_object_block = #{val[0].to_yaml}") 601 654 result = {:untyped_multiple_attr_object_block => val[0]} 602 655 } … … 608 661 untyped_multiple_attr_object_block: multiple_attr_object_block_head keyed_objects SYM_END_DBLOCK 609 662 { 663 @@logger.debug("#{__FILE__}:#{__LINE__}:untyped_multiple_attr_object_block::keyed_objects\n keyed_objects = #{val[1].to_yaml}") 610 664 result = val[1] 611 665 } … … 629 683 #@@logger.debug("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]} at #{@filename}:#{@lineno}") 630 684 #result = {:object_key => val[0], :object_block => val[2]} 631 unless val[2][:type_identifier] 632 result = Hash[val[0] => val[2][:untyped_primitive_object_block]] 685 object_key,object_block = val[0],val[2] 686 unless object_block[:type_identifier] 687 result = Hash[val[0] => object_block[:untyped_primitive_object_block]] 633 688 else 634 689 raise OpenEhr::ADL::Exception::Parser::Error, "Missing type_identifier at #{@filename}:#{@lineno} " … … 654 709 { 655 710 @@logger.debug("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}") 656 #result = {:single_attr_object_complex_head => val[0]}657 711 result = [] 658 712 } 659 713 | single_attr_object_complex_head attr_vals SYM_END_DBLOCK 660 714 { 661 @@logger.debug("#{__FILE__}:#{__LINE__}: attr_vals = #{val[1]} at #{@filename}:#{@lineno}") 662 #result = {:single_attr_object_complex_head => val[0], :attr_vals => val[1]} 715 @@logger.debug("#{__FILE__}:#{__LINE__}: untyped_single_attr_object_block::attr_vals = \n#{val[1].to_yaml} at #{@filename}:#{@lineno}") 663 716 result = val[1] 664 717 } 665 718 single_attr_object_complex_head: SYM_START_DBLOCK 719 666 720 primitive_object_block: untyped_primitive_object_block 667 721 { … … 1356 1410 require 'rubygems' 1357 1411 require 'open_ehr' 1358 #require 'adl_parser.rb'1359 #require 'am.rb'1360 #require 'rm.rb'1361 #require 'rm/support/assumed_types.rb'1362 #require 'assumed_library_types.rb'1363 1412 $DEBUG = true 1364 1413 … … 1401 1450 1402 1451 1403 def parse(data, filename , lineno = 1, debug = false)1452 def parse(data, filename = "", lineno = 1, debug = false) 1404 1453 @yydebug = true 1405 1454 @parsestring = data
Note:
See TracChangeset
for help on using the changeset viewer.