public final void appendCode(XmcWriter w) throws XmException { Iterator<XcIdent> ite = iterator(); w.spc().add('{').lf(); for (; ite.hasNext(); ) { XcIdent ident = ite.next(); String symbol = ident.getSymbol(); XcType type = ident.getType(); ident.appendGccExtension(w); type.appendDeclCode(w, symbol, true, false); if (ident.getIsBitField()) { w.add(":"); if (ident.getIsBitFieldExpr()) { w.add(ident.getBitFieldExpr()); } else { w.add(ident.getBitField()); } } w.add(ident.getGccAttribute()); w.add(';').lf(); } w.add('}'); }
/** * Appends contents of compound statement with XmWriter. * * @param w a writer appends the code. * @param insideCompExpr true if is the object is the term of the compound expression. * @throws XmException thrown if a writer failed to append the content. */ public final void appendContent(XmcWriter w, boolean insideCompExpr) throws XmException { if (_identTable == null) { w.add(_decls); } else { _identTable.appendCode(w, _decls); } Iterator<XcStAndDeclObj> iter = _stmtAndDeclList.iterator(); XcStAndDeclObj stmtAndDecl = null; while (iter.hasNext() == true) { stmtAndDecl = iter.next(); w.add(stmtAndDecl); if (insideCompExpr == false) w.noLfOrLf(); } if (stmtAndDecl != null && ((stmtAndDecl instanceof XcControlStmtObj.CaseLabel) || (stmtAndDecl instanceof XcControlStmtObj.GccRangedCaseLabel) || (stmtAndDecl instanceof XcControlStmtObj.Label) || (stmtAndDecl instanceof XcControlStmtObj.DefaultLabel))) w.eos(); }
@Override public void appendCode(XmcWriter w) throws XmException { if (XmOption.isSuppressLineDirective()) return; if (_lineNum <= 0 || _filePath == null) return; w.noLfOrLf().add("# ").add(_lineNum); if (_filePath != null) { w.add(" \"").add(_filePath); if (w.getIsDebugMode() && _rawLineNum > 0) w.addSpc("(raw line = ").addSpc(_rawLineNum).add(")"); w.add("\""); } w.lf(); }
@Override public final void appendCode(XmcWriter w) throws XmException { w.add("{").lf(); appendContent(w, false); w.add("}").lf(); }