diff options
author | Sundong Ahn <sundongahn@google.com> | 2022-03-24 08:55:00 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-03-24 08:55:00 +0000 |
commit | eb4c6d5ed9a91cec73c2f90199c8552bd8924628 (patch) | |
tree | 781fa47dfe3aade2f418cef5c034d03f032e4112 | |
parent | ec667508fa0e0f959d5a1f8794827c8507685729 (diff) | |
parent | e1c10f6e5b1f54bbb362b8e114d34e7b495a7286 (diff) | |
download | xsdc-android13-qpr2-s10-release.tar.gz |
Support multiple whitespace characters am: bf3bd35ef8 am: 974af37e1d am: e1c10f6e5bt_frc_odp_330442040t_frc_odp_330442000t_frc_ase_330444010android-13.0.0_r83android-13.0.0_r82android-13.0.0_r81android-13.0.0_r80android-13.0.0_r79android-13.0.0_r78android-13.0.0_r77android-13.0.0_r76android-13.0.0_r75android-13.0.0_r74android-13.0.0_r73android-13.0.0_r72android-13.0.0_r71android-13.0.0_r70android-13.0.0_r69android-13.0.0_r68android-13.0.0_r67android-13.0.0_r66android-13.0.0_r65android-13.0.0_r64android-13.0.0_r63android-13.0.0_r62android-13.0.0_r61android-13.0.0_r60android-13.0.0_r59android-13.0.0_r58android-13.0.0_r57android-13.0.0_r56android-13.0.0_r54android-13.0.0_r53android-13.0.0_r52android-13.0.0_r51android-13.0.0_r50android-13.0.0_r49android-13.0.0_r48android-13.0.0_r47android-13.0.0_r46android-13.0.0_r45android-13.0.0_r44android-13.0.0_r43android-13.0.0_r42android-13.0.0_r41android-13.0.0_r40android-13.0.0_r39android-13.0.0_r38android-13.0.0_r37android-13.0.0_r36android-13.0.0_r35android-13.0.0_r34android-13.0.0_r33android-13.0.0_r32android13-qpr3-s9-releaseandroid13-qpr3-s8-releaseandroid13-qpr3-s7-releaseandroid13-qpr3-s6-releaseandroid13-qpr3-s5-releaseandroid13-qpr3-s4-releaseandroid13-qpr3-s3-releaseandroid13-qpr3-s2-releaseandroid13-qpr3-s14-releaseandroid13-qpr3-s13-releaseandroid13-qpr3-s12-releaseandroid13-qpr3-s11-releaseandroid13-qpr3-s10-releaseandroid13-qpr3-s1-releaseandroid13-qpr3-releaseandroid13-qpr3-c-s8-releaseandroid13-qpr3-c-s7-releaseandroid13-qpr3-c-s6-releaseandroid13-qpr3-c-s5-releaseandroid13-qpr3-c-s4-releaseandroid13-qpr3-c-s3-releaseandroid13-qpr3-c-s2-releaseandroid13-qpr3-c-s12-releaseandroid13-qpr3-c-s11-releaseandroid13-qpr3-c-s10-releaseandroid13-qpr3-c-s1-releaseandroid13-qpr2-s9-releaseandroid13-qpr2-s8-releaseandroid13-qpr2-s7-releaseandroid13-qpr2-s6-releaseandroid13-qpr2-s5-releaseandroid13-qpr2-s3-releaseandroid13-qpr2-s2-releaseandroid13-qpr2-s12-releaseandroid13-qpr2-s11-releaseandroid13-qpr2-s10-releaseandroid13-qpr2-s1-releaseandroid13-qpr2-releaseandroid13-qpr2-b-s1-releaseandroid13-frc-odp-releaseandroid13-devandroid13-d4-s2-releaseandroid13-d4-s1-releaseandroid13-d4-releaseandroid13-d3-s1-release
Original change: https://android-review.googlesource.com/c/platform/system/tools/xsdc/+/2038983
Change-Id: I0673d978418ddd0cc1380a2b67c775751f7c5a8a
-rw-r--r-- | src/com/android/xsdc/cpp/CppCodeGenerator.java | 1 | ||||
-rw-r--r-- | src/com/android/xsdc/cpp/CppSimpleType.java | 13 | ||||
-rw-r--r-- | tests/resources/attr_group_simple.xml | 3 |
3 files changed, 8 insertions, 9 deletions
diff --git a/src/com/android/xsdc/cpp/CppCodeGenerator.java b/src/com/android/xsdc/cpp/CppCodeGenerator.java index 272a296..e470216 100644 --- a/src/com/android/xsdc/cpp/CppCodeGenerator.java +++ b/src/com/android/xsdc/cpp/CppCodeGenerator.java @@ -154,6 +154,7 @@ public class CppCodeGenerator { parserHeaderFile.printf("#include <optional>\n"); parserHeaderFile.printf("#include <string>\n"); parserHeaderFile.printf("#include <vector>\n"); + parserHeaderFile.printf("#include <sstream>\n"); if (writer) { parserHeaderFile.printf("#include <iostream>\n"); } diff --git a/src/com/android/xsdc/cpp/CppSimpleType.java b/src/com/android/xsdc/cpp/CppSimpleType.java index 282855f..d063ebe 100644 --- a/src/com/android/xsdc/cpp/CppSimpleType.java +++ b/src/com/android/xsdc/cpp/CppSimpleType.java @@ -63,15 +63,12 @@ class CppSimpleType implements CppType { if (list) { expression.append( String.format("%s value;\n", getName())); - expression.append(String.format("{\nint base = 0;\n" - + "int found;\n" - + "while(true) {\n" - + "found = raw.find_first_of(\" \", base);\n" - + "value.push_back(%s);\n" - + "if (found == raw.npos) break;\n" - + "base = found + 1;\n" + expression.append(String.format("{\n" + + "std::istringstream stream(raw);\n" + + "for(std::string str; stream >> str; ) {\n" + + " value.push_back(%s);\n" + "}\n", - String.format(rawParsingExpression, "raw.substr(base, found - base)"))); + String.format(rawParsingExpression, "str"))); expression.append("}\n"); } else { expression.append( diff --git a/tests/resources/attr_group_simple.xml b/tests/resources/attr_group_simple.xml index 0a14222..fa400f9 100644 --- a/tests/resources/attr_group_simple.xml +++ b/tests/resources/attr_group_simple.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<Student State="CA" city="Mountain View" road="Street 101" list="1 2 3"> +<Student State="CA" city="Mountain View" road="Street 101" list="1 2 + 3"> <Name>Jun</Name> </Student> |