Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
e07d203
Use ACE XML_Utils CDR header and remove unused helper
jwillemsen Oct 22, 2026
6cba27c
Remove duplicated local XSCRT runtime
jwillemsen Oct 22, 2026
75eabbb
Keep local CDR types pending ACE release
jwillemsen Oct 22, 2026
6936141
Modernize C++17 generated code
jwillemsen Oct 22, 2026
77f9b65
Modernize generated declarations
jwillemsen Oct 22, 2026
155d503
Default copies for sequence-only schema types
jwillemsen Oct 22, 2026
deb84d3
Use range loops in CDR sequence writers
jwillemsen Oct 22, 2026
9baca71
Replace unsafe optional field accessors
jwillemsen Oct 22, 2026
a8c1585
Refine generated C++ API and formatting
jwillemsen Oct 22, 2026
e74e122
Add read-only DanceX11 API assertions
jwillemsen Oct 22, 2026
78763c3
Fix traversal generation for read-only types
jwillemsen Oct 22, 2026
13af7d5
Merge generated C++17 improvements from PR #86
jwillemsen Oct 22, 2026
e868d5e
Stamp generated files with XSC version
jwillemsen Oct 22, 2026
88ba352
Record invocation in generated files
jwillemsen Oct 22, 2026
186d8b9
Merge remote-tracking branch 'upstream/master' into ace-xml-utils-cdr…
jwillemsen Oct 22, 2026
6838162
Make generated invocation arguments portable
jwillemsen Oct 22, 2026
f3242b3
Modernize generated C++ output
jwillemsen Oct 22, 2026
9aa9e1c
Mark generated sequence counts noexcept
jwillemsen Oct 22, 2026
5d51d24
Fix read-only compatibility generation
jwillemsen Oct 22, 2026
82e9c72
Address PR 84 review feedback
jwillemsen Oct 22, 2026
e400b15
Add regression tests for PR 84 fixes
jwillemsen Oct 22, 2026
0a79868
Stop tracking recursive example output
jwillemsen Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,14 @@ jobs:
if: matrix.Repo != ''
- name: Add packages
run: |
sudo apt-get --yes install libxerces-c-dev libssl-dev ${{ matrix.PackageDeps }}
sudo apt-get --yes install libxerces-c-dev ${{ matrix.PackageDeps }}
- name: create $ACE_ROOT/ace/config.h
run: |
'#include "ace/config-linux.h"' > ${env:ACE_ROOT}/ace/config.h
shell: pwsh
- name: create $ACE_ROOT/include/makeinclude/platform_macros.GNU
run: |
'xerces3=1' > ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
'ssl=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
'xsc=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
shell: pwsh
- name: add optional optional macros
Expand Down Expand Up @@ -117,3 +116,14 @@ jobs:
Pop-Location
}
shell: pwsh
- name: Run DanceX11 generated-code test
run: |
Push-Location ${env:XSC_ROOT}/Tests/DanceX11
try {
perl run_test.pl
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
}
finally {
Pop-Location
}
shell: pwsh
35 changes: 32 additions & 3 deletions CCF/CodeGenerationKit/IndentationCxx.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ namespace Indentation
position_ (0),
paren_balance_ (0),
spaces_ (2),
construct_ (OTHER)
construct_ (OTHER),
last_non_whitespace_ (0),
inline_initializer_ (false)
{
indentation_.push (0);
}
Expand Down Expand Up @@ -94,6 +96,16 @@ namespace Indentation
if (this->construct_ != CXX_COMMENT &&
this->construct_ != STRING_LITERAL)
{
if (this->last_non_whitespace_ == '=' ||
this->last_non_whitespace_ == '_')
{
this->output_indentation ();
result = this->write (c);
++ this->position_;
this->inline_initializer_ = true;
break;
}

// Make sure there is a new line in the buffer. We then need to
// move the correct position on the newline.
this->ensure_new_line ();
Expand All @@ -114,6 +126,15 @@ namespace Indentation
case '}':
if (!(this->construct_ == CXX_COMMENT || this->construct_ == STRING_LITERAL))
{
if (this->inline_initializer_)
{
this->output_indentation ();
result = this->write (c);
++ this->position_;
this->inline_initializer_ = false;
break;
}

// Remove the current indentation value, if it exists.
if (this->indentation_.size () > 1)
this->indentation_.pop ();
Expand All @@ -138,8 +159,7 @@ namespace Indentation
this->hold_.push_back (c);


// Add double newline after '}'.
this->hold_.push_back ('\n');
// Add a newline after '}'.
this->hold_.push_back ('\n');

// Set position to the start of the line.
Expand Down Expand Up @@ -319,6 +339,9 @@ namespace Indentation
// Update the position.
++ this->position_;
}

if (c != ' ' && c != '\t' && c != '\n' && c != '\r')
this->last_non_whitespace_ = c;
}
catch (const Full &)
{
Expand Down Expand Up @@ -431,6 +454,12 @@ namespace Indentation
/// The type of construct.
Construct construct_;

/// Last non-whitespace input character.
char_type last_non_whitespace_;

/// Whether the current brace pair is an inline initializer.
bool inline_initializer_;

/// Type definition of the holding queue.
using Hold = std::deque<int_type>;

Expand Down
Loading