gov.llnl.babel.backend.writers

Class LanguageWriterForFortran

Implemented Interfaces:
CodeConstants

public class LanguageWriterForFortran
extends LanguageWriter
implements CodeConstants

Class LanguageWriterForFortran extends the generic language writer to provide additional capabilities for writing Fortran code, such as Fortran comment blocks.

Field Summary

Fields inherited from class gov.llnl.babel.backend.writers.LanguageWriter

d_context

Fields inherited from interface gov.llnl.babel.backend.CodeConstants

C_AUTO_GEN_SPLICER, C_AUTO_GEN_WARNING, C_BACKSLASH, C_BEGIN_UNREFERENCED_METHODS, C_COMMENT_CLOSE, C_COMMENT_DOC_OPEN, C_COMMENT_F77, C_COMMENT_F90, C_COMMENT_HASH, C_COMMENT_OPEN, C_COMMENT_SLASH, C_COMMENT_SUBSEQUENT, C_DEFINE, C_DESC_CJNI_PREFIX, C_DESC_HEADER_PREFIX, C_DESC_IMPL_PREFIX, C_DESC_IOR_PREFIX, C_DESC_SJNI_PREFIX, C_DESC_SKEL_PREFIX, C_DESC_STUB_PREFIX, C_END_UNREFERENCED_METHODS, C_F7731_IMPL_EXTENSION, C_F77_IMPL_EXTENSION, C_F77_IMPL_METHOD_SUFFIX, C_F77_METHOD_SUFFIX, C_F77_VERSION, C_F90_ALT_SUFFIX, C_F90_IMPL_EXTENSION, C_F90_IMPL_METHOD_SUFFIX, C_F90_METHOD_SUFFIX, C_F90_VERSION, C_FORTRAN_DESC_STUB_PREFIX, C_FORTRAN_IMPL_MODULE_PREFIX, C_FORTRAN_MODULE_PREFIX, C_FORTRAN_TYPE_MODULE_PREFIX, C_GUARD_CLOSE, C_GUARD_OPEN, C_HASH, C_IFDEFINE_CLOSE, C_IFDEFINE_CXX, C_IFDEFINE_OPEN, C_INCLUDE, C_INSERT_HERE, C_INT_BACKSLASH, C_IS_IMPL, C_IS_NOT_IMPL, C_SLASH, C_UNREFERENCED_COMMENT1, C_UNREFERENCED_COMMENT2, C_UNREFERENCED_COMMENT3, MATLAB_COMMENT_OPEN

Constructor Summary

LanguageWriterForFortran(PrintWriter writer, Context context)
Create a LanguageWriterForFortran instance that will send output to the specified print writer object.

Method Summary

void
beginBlockComment(boolean is_doc)
Begin a block comment.
void
endBlockComment(boolean is_doc)
End a block comment.
void
generateInclude(String file)
Generate a user include statement for the specified include file.
void
generateSystemInclude(String file)
Generate a system include statement for the specified include file.
void
generateUse(String module, Map rename)
Generate a use statement for the specified string.
void
writeComment(Method method, boolean is_doc, boolean add_default)
Write a comment for a sidl method to the pretty writer stream.
void
writeCommentLine(String comment)
Output a single-line comment to the pretty writer stream.
void
writeSplicerTagLine(String tagLine)
Write the splicer tag as a language-specific comment.

Methods inherited from class gov.llnl.babel.backend.writers.LanguageWriter

beginBlockComment, endBlockComment, safeCommentString, writeBanner, writeComment, writeComment, writeComment, writeComment, writeComment, writeComment, writeComment, writeCommentLine, writeSplicerTagLine

Methods inherited from class gov.llnl.babel.backend.writers.PrettyWriter

backTab, changeTabLevel, close, defineBlockComment, disableBlockComment, disableLineBreak, enableBlockComment, enableLineBreak, enableLineBreak, flushPrintWriter, getPrintWriter, popLineBreak, print, printAligned, printSpaces, printUnformatted, println, println, printlnUnformatted, pushLineBreak, restoreFirstTabStop, setFirstTabStop, setLineBreakString, setStrictBreaking, setTabSpacing, setTemporaryFirstTabStop, tab

Constructor Details

LanguageWriterForFortran

public LanguageWriterForFortran(PrintWriter writer,
                                Context context)
Create a LanguageWriterForFortran instance that will send output to the specified print writer object. Set up the output properties of the language writer for Fortran. For F77, it sets the first tab at eight, the tab spacing to three, and a line break at column 72.

Method Details

beginBlockComment

public void beginBlockComment(boolean is_doc)
Begin a block comment. The comment block is enabled and a blank line is printed. There is no difference between documentation comments and regular comments in Fortran.
Overrides:
beginBlockComment in interface LanguageWriter

endBlockComment

public void endBlockComment(boolean is_doc)
End a block comment. A line is printed to close the comment. An empty line is printed after the comment. There is no difference between documentation commends and regular comments in Fortran.
Overrides:
endBlockComment in interface LanguageWriter

generateInclude

public void generateInclude(String file)
Generate a user include statement for the specified include file. There is no guard flag for the fortran version.

generateSystemInclude

public void generateSystemInclude(String file)
Generate a system include statement for the specified include file.

generateUse

public void generateUse(String module,
                        Map rename)
Generate a use statement for the specified string.

writeComment

public void writeComment(Method method,
                         boolean is_doc,
                         boolean add_default)
Write a comment for a sidl method to the pretty writer stream. Optionally write the method name if the symbol does not have an associated comment.
Overrides:
writeComment in interface LanguageWriter

writeCommentLine

public void writeCommentLine(String comment)
Output a single-line comment to the pretty writer stream. The comment should not contain any new line characters. If the comment is null, then nothing is output.
Overrides:
writeCommentLine in interface LanguageWriter

writeSplicerTagLine

public void writeSplicerTagLine(String tagLine)
Write the splicer tag as a language-specific comment.
Overrides:
writeSplicerTagLine in interface LanguageWriter