@@ -1475,6 +1475,80 @@ void java_string_library_preprocesst::initialize_conversion_table()
1475
1475
// Methods that are not supported here should ultimately have Java models
1476
1476
// provided for them in the class-path.
1477
1477
1478
+ // CProverString library
1479
+ cprover_equivalent_to_java_assign_and_return_function
1480
+ [" java::org.cprover.CProverString.append:(Ljava/lang/StringBuilder;Ljava/"
1481
+ " lang/CharSequence;II)"
1482
+ " Ljava/lang/StringBuilder;" ] = ID_cprover_string_concat_func;
1483
+ // CProverString.charAt differs from the Java String.charAt in that no
1484
+ // exception is raised for the out of bounds case.
1485
+ cprover_equivalent_to_java_function
1486
+ [" java::org.cprover.CProverString.charAt:(Ljava/lang/String;I)C" ]=
1487
+ ID_cprover_string_char_at_func;
1488
+ cprover_equivalent_to_java_function
1489
+ [" java::org.cprover.CProverString.charAt:(Ljava/lang/StringBuffer;I)C" ] =
1490
+ ID_cprover_string_char_at_func;
1491
+ cprover_equivalent_to_java_function
1492
+ [" java::org.cprover.CProverString.codePointAt:(Ljava/lang/String;I)I" ] =
1493
+ ID_cprover_string_code_point_at_func;
1494
+ cprover_equivalent_to_java_function
1495
+ [" java::org.cprover.CProverString.codePointBefore:(Ljava/lang/String;I)I" ] =
1496
+ ID_cprover_string_code_point_before_func;
1497
+ cprover_equivalent_to_java_function
1498
+ [" java::org.cprover.CProverString.codePointCount:(Ljava/lang/String;II)I" ] =
1499
+ ID_cprover_string_code_point_count_func;
1500
+ cprover_equivalent_to_java_assign_and_return_function
1501
+ [" java::org.cprover.CProverString.delete:(Ljava/lang/StringBuffer;II)Ljava/"
1502
+ " lang/StringBuffer;" ] = ID_cprover_string_delete_func;
1503
+ cprover_equivalent_to_java_assign_and_return_function
1504
+ [" java::org.cprover.CProverString.delete:(Ljava/lang/"
1505
+ " StringBuilder;II)Ljava/lang/StringBuilder;" ] =
1506
+ ID_cprover_string_delete_func;
1507
+ cprover_equivalent_to_java_assign_and_return_function
1508
+ [" java::org.cprover.CProverString.deleteCharAt:(Ljava/lang/"
1509
+ " StringBufferI)Ljava/lang/StringBuffer;" ] =
1510
+ ID_cprover_string_delete_char_at_func;
1511
+ cprover_equivalent_to_java_assign_and_return_function
1512
+ [" java::org.cprover.CProverString.deleteCharAt:(Ljava/lang/"
1513
+ " StringBuilder;I)Ljava/lang/StringBuilder;" ] =
1514
+ ID_cprover_string_delete_char_at_func;
1515
+
1516
+ std::string format_signature = " java::org.cprover.CProverString.format:(" ;
1517
+ for (std::size_t i = 0 ; i < MAX_FORMAT_ARGS + 1 ; ++i)
1518
+ format_signature += " Ljava/lang/String;" ;
1519
+ format_signature += " )Ljava/lang/String;" ;
1520
+ cprover_equivalent_to_java_string_returning_function[format_signature] =
1521
+ ID_cprover_string_format_func;
1522
+
1523
+ cprover_equivalent_to_java_assign_and_return_function
1524
+ [" java::org.cprover.CProverString.insert:(Ljava/lang/StringBuilder;ILjava/"
1525
+ " lang/String;)Ljava/lang/StringBuilder;" ] = ID_cprover_string_insert_func;
1526
+ cprover_equivalent_to_java_function
1527
+ [" java::org.cprover.CProverString.offsetByCodePoints:(Ljava/lang/"
1528
+ " String;II)I" ] = ID_cprover_string_offset_by_code_point_func;
1529
+ cprover_equivalent_to_java_assign_function
1530
+ [" java::org.cprover.CProverString.setCharAt:(Ljava/lang/String;IC)V" ] =
1531
+ ID_cprover_string_char_set_func;
1532
+ cprover_equivalent_to_java_assign_function
1533
+ [" java::org.cprover.CProverString.setLength:(Ljava/lang/String;I)V" ] =
1534
+ ID_cprover_string_set_length_func;
1535
+ cprover_equivalent_to_java_string_returning_function
1536
+ [" java::org.cprover.CProverString.subSequence:(Ljava/lang/String;II)Ljava/"
1537
+ " lang/CharSequence;" ] = ID_cprover_string_substring_func;
1538
+ // CProverString.substring differs from the Java String.substring in that no
1539
+ // exception is raised for the out of bounds case.
1540
+ cprover_equivalent_to_java_string_returning_function
1541
+ [" java::org.cprover.CProverString.substring:(Ljava/lang/String;I)"
1542
+ " Ljava/lang/String;" ]=
1543
+ ID_cprover_string_substring_func;
1544
+ cprover_equivalent_to_java_string_returning_function
1545
+ [" java::org.cprover.CProverString.substring:(Ljava/lang/String;II)"
1546
+ " Ljava/lang/String;" ]=
1547
+ ID_cprover_string_substring_func;
1548
+ cprover_equivalent_to_java_string_returning_function
1549
+ [" java::org.cprover.CProverString.substring:(Ljava/Lang/"
1550
+ " StringBuffer;II)Ljava/lang/String;" ] = ID_cprover_string_substring_func;
1551
+
1478
1552
// String library
1479
1553
conversion_table[" java::java.lang.String.<init>:(Ljava/lang/String;)V" ] =
1480
1554
std::bind (
@@ -1496,20 +1570,6 @@ void java_string_library_preprocesst::initialize_conversion_table()
1496
1570
[" java::java.lang.String.<init>:()V" ]=
1497
1571
ID_cprover_string_empty_string_func;
1498
1572
1499
- // CProverString.charAt differs from the Java String.charAt in that no
1500
- // exception is raised for the out of bounds case.
1501
- cprover_equivalent_to_java_function
1502
- [" java::org.cprover.CProverString.charAt:(Ljava/lang/String;I)C" ]=
1503
- ID_cprover_string_char_at_func;
1504
- cprover_equivalent_to_java_function
1505
- [" java::org.cprover.CProverString.codePointAt:(Ljava/lang/String;I)I" ] =
1506
- ID_cprover_string_code_point_at_func;
1507
- cprover_equivalent_to_java_function
1508
- [" java::org.cprover.CProverString.codePointBefore:(Ljava/lang/String;I)I" ] =
1509
- ID_cprover_string_code_point_before_func;
1510
- cprover_equivalent_to_java_function
1511
- [" java::org.cprover.CProverString.codePointCount:(Ljava/lang/String;II)I" ] =
1512
- ID_cprover_string_code_point_count_func;
1513
1573
cprover_equivalent_to_java_function
1514
1574
[" java::java.lang.String.compareTo:(Ljava/lang/String;)I" ]=
1515
1575
ID_cprover_string_compare_to_func;
@@ -1526,13 +1586,6 @@ void java_string_library_preprocesst::initialize_conversion_table()
1526
1586
[" java::java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z" ]=
1527
1587
ID_cprover_string_equals_ignore_case_func;
1528
1588
1529
- std::string format_signature = " java::org.cprover.CProverString.format:(" ;
1530
- for (std::size_t i = 0 ; i < MAX_FORMAT_ARGS + 1 ; ++i)
1531
- format_signature += " Ljava/lang/String;" ;
1532
- format_signature += " )Ljava/lang/String;" ;
1533
- cprover_equivalent_to_java_string_returning_function[format_signature] =
1534
- ID_cprover_string_format_func;
1535
-
1536
1589
cprover_equivalent_to_java_function
1537
1590
[" java::java.lang.String.indexOf:(I)I" ]=
1538
1591
ID_cprover_string_index_of_func;
@@ -1567,9 +1620,6 @@ void java_string_library_preprocesst::initialize_conversion_table()
1567
1620
std::placeholders::_2,
1568
1621
std::placeholders::_3,
1569
1622
std::placeholders::_4);
1570
- cprover_equivalent_to_java_function
1571
- [" java::org.cprover.CProverString.offsetByCodePoints:(Ljava/lang/"
1572
- " String;II)I" ] = ID_cprover_string_offset_by_code_point_func;
1573
1623
cprover_equivalent_to_java_string_returning_function
1574
1624
[" java::java.lang.String.replace:(CC)Ljava/lang/String;" ]=
1575
1625
ID_cprover_string_replace_func;
@@ -1582,19 +1632,6 @@ void java_string_library_preprocesst::initialize_conversion_table()
1582
1632
cprover_equivalent_to_java_function
1583
1633
[" java::java.lang.String.startsWith:(Ljava/lang/String;I)Z" ]=
1584
1634
ID_cprover_string_startswith_func;
1585
- cprover_equivalent_to_java_string_returning_function
1586
- [" java::org.cprover.CProverString.subSequence:(Ljava/lang/String;II)Ljava/"
1587
- " lang/CharSequence;" ] = ID_cprover_string_substring_func;
1588
- // CProverString.substring differs from the Java String.substring in that no
1589
- // exception is raised for the out of bounds case.
1590
- cprover_equivalent_to_java_string_returning_function
1591
- [" java::org.cprover.CProverString.substring:(Ljava/lang/String;II)"
1592
- " Ljava/lang/String;" ]=
1593
- ID_cprover_string_substring_func;
1594
- cprover_equivalent_to_java_string_returning_function
1595
- [" java::org.cprover.CProverString.substring:(Ljava/lang/String;I)"
1596
- " Ljava/lang/String;" ]=
1597
- ID_cprover_string_substring_func;
1598
1635
cprover_equivalent_to_java_string_returning_function
1599
1636
[" java::java.lang.String.toLowerCase:()Ljava/lang/String;" ]=
1600
1637
ID_cprover_string_to_lower_case_func;
@@ -1649,10 +1686,6 @@ void java_string_library_preprocesst::initialize_conversion_table()
1649
1686
cprover_equivalent_to_java_assign_and_return_function
1650
1687
[" java::java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;" ]=
1651
1688
ID_cprover_string_concat_char_func;
1652
- cprover_equivalent_to_java_assign_and_return_function
1653
- [" java::org.cprover.CProverString.append:(Ljava/lang/StringBuilder;Ljava/"
1654
- " lang/CharSequence;II)"
1655
- " Ljava/lang/StringBuilder;" ] = ID_cprover_string_concat_func;
1656
1689
cprover_equivalent_to_java_assign_and_return_function
1657
1690
[" java::java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)"
1658
1691
" Ljava/lang/StringBuilder;" ] = ID_cprover_string_concat_func;
@@ -1675,17 +1708,6 @@ void java_string_library_preprocesst::initialize_conversion_table()
1675
1708
cprover_equivalent_to_java_function
1676
1709
[" java::java.lang.StringBuilder.codePointCount:(II)I" ]=
1677
1710
ID_cprover_string_code_point_count_func;
1678
- cprover_equivalent_to_java_assign_and_return_function
1679
- [" java::org.cprover.CProverString.delete:(Ljava/lang/"
1680
- " StringBuilder;II)Ljava/lang/StringBuilder;" ] =
1681
- ID_cprover_string_delete_func;
1682
- cprover_equivalent_to_java_assign_and_return_function
1683
- [" java::org.cprover.CProverString.deleteCharAt:(Ljava/lang/"
1684
- " StringBuilder;I)Ljava/lang/StringBuilder;" ] =
1685
- ID_cprover_string_delete_char_at_func;
1686
- cprover_equivalent_to_java_assign_and_return_function
1687
- [" java::org.cprover.CProverString.insert:(Ljava/lang/StringBuilder;ILjava/"
1688
- " lang/String;)Ljava/lang/StringBuilder;" ] = ID_cprover_string_insert_func;
1689
1711
conversion_table[" java::java.lang.StringBuilder.length:()I" ] = std::bind (
1690
1712
&java_string_library_preprocesst::make_string_length_code,
1691
1713
this ,
@@ -1744,9 +1766,6 @@ void java_string_library_preprocesst::initialize_conversion_table()
1744
1766
[" java::java.lang.StringBuffer.appendCodePoint:(I)"
1745
1767
" Ljava/lang/StringBuffer;" ]=
1746
1768
ID_cprover_string_concat_code_point_func;
1747
- cprover_equivalent_to_java_function
1748
- [" java::org.cprover.CProverString.charAt:(Ljava/lang/StringBuffer;I)C" ] =
1749
- ID_cprover_string_char_at_func;
1750
1769
cprover_equivalent_to_java_function
1751
1770
[" java::java.lang.StringBuffer.codePointAt:(I)I" ]=
1752
1771
ID_cprover_string_code_point_at_func;
@@ -1756,28 +1775,12 @@ void java_string_library_preprocesst::initialize_conversion_table()
1756
1775
cprover_equivalent_to_java_function
1757
1776
[" java::java.lang.StringBuffer.codePointCount:(II)I" ]=
1758
1777
ID_cprover_string_code_point_count_func;
1759
- cprover_equivalent_to_java_assign_and_return_function
1760
- [" java::org.cprover.CProverString.delete:(Ljava/lang/StringBuffer;II)Ljava/"
1761
- " lang/StringBuffer;" ] = ID_cprover_string_delete_func;
1762
- cprover_equivalent_to_java_assign_and_return_function
1763
- [" java::org.cprover.CProverString.deleteCharAt:(Ljava/lang/"
1764
- " StringBufferI)Ljava/lang/StringBuffer;" ] =
1765
- ID_cprover_string_delete_char_at_func;
1766
1778
conversion_table
1767
1779
[" java::java.lang.StringBuffer.length:()I" ]=
1768
1780
conversion_table[" java::java.lang.String.length:()I" ];
1769
- cprover_equivalent_to_java_assign_function
1770
- [" java::org.cprover.CProverString.setCharAt:(Ljava/lang/String;IC)V" ] =
1771
- ID_cprover_string_char_set_func;
1772
- cprover_equivalent_to_java_assign_function
1773
- [" java::org.cprover.CProverString.setLength:(Ljava/lang/String;I)V" ] =
1774
- ID_cprover_string_set_length_func;
1775
1781
cprover_equivalent_to_java_string_returning_function
1776
1782
[" java::java.lang.StringBuffer.substring:(I)Ljava/lang/String;" ]=
1777
1783
ID_cprover_string_substring_func;
1778
- cprover_equivalent_to_java_string_returning_function
1779
- [" java::org.cprover.CProverString.substring:(Ljava/Lang/"
1780
- " StringBuffer;II)Ljava/lang/String;" ] = ID_cprover_string_substring_func;
1781
1784
conversion_table
1782
1785
[" java::java.lang.StringBuffer.toString:()Ljava/lang/String;" ] = std::bind (
1783
1786
&java_string_library_preprocesst::make_copy_string_code,
0 commit comments