public class LanguageWriterForMatlab extends LanguageWriter implements CodeConstants, LineRedirector
LanguageWriterForMatlab
extends the generic language
writer to provide additional capabilities for writing C code. This
class manages writing comment blocks as well as include files and
C++ external declaration guards.Modifier and Type | Field and Description |
---|---|
protected LineCountingFilterWriter |
d_lcfw |
protected boolean |
d_skipIncludeGuard |
d_context
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_F77_IMPL_EXTENSION, C_F77_IMPL_METHOD_SUFFIX, C_F77_METHOD_SUFFIX, C_F77_VERSION, C_F7731_IMPL_EXTENSION, 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 and Description |
---|
LanguageWriterForMatlab(java.io.PrintWriter writer,
Context context)
Create a
LanguageWriterForMatlab instance that will send
output to the specified print writer object. |
LanguageWriterForMatlab(java.io.PrintWriter writer,
LineCountingFilterWriter lcfw,
Context context)
Create a
LanguageWriterForMatlab instance that will send
output to the specified print writer object. |
Modifier and Type | Method and Description |
---|---|
void |
beginBlockComment(boolean is_doc)
Begin a block comment.
|
void |
closeCxxExtern()
Close the C++ extern block at the end of the header file.
|
void |
closeHeaderGuard()
Close the header guard at the end of the header file.
|
void |
endBlockComment(boolean is_doc)
End a block comment.
|
void |
generateInclude(java.lang.String file,
boolean guards)
Generate a user include statement for the specified include file.
|
void |
generateSystemInclude(java.lang.String file)
Generate a system include statement for the specified include file.
|
java.lang.String |
getIncludeGuard(java.lang.String file)
Generate the include guard from the specified file name.
|
int |
getLineCount()
get current line (returns -1 iff lfcw == null )
|
void |
openCxxExtern()
Open the C++ extern block at the top of the header file.
|
void |
openHeaderGuard(java.lang.String file)
Open the header include guard at the top of the header file.
|
void |
redirectBegin(java.lang.String path,
int line)
Mark a region where the debugger should be redirected to another file
starting on a specific line.
|
void |
redirectEnd(java.lang.String path,
int line)
End the region where the debugger can just follow this file.
|
java.lang.String |
safeCommentString(java.lang.String str)
Convert a string into a string that can safely be included inside
a C comment.
|
void |
skipIncludeGuard()
Turns openHeaderGuard & closeHeaderGuard into no-ops.
|
static java.lang.String |
toSafeComment(java.lang.String str)
Convert a string into a string that can safely be included inside
a C comment.
|
static java.lang.String |
toSafeString(java.lang.String str)
Convert a string into a string that can safely be included inside
a C string.
|
void |
writeCommentLine(java.lang.String comment)
Output a single-line comment to the pretty writer stream.
|
void |
writeSplicerTagLine(java.lang.String tagLine)
(Is this appropriate?) Write the splicer tag as a language-specific
comment.
|
writeBanner, writeComment, writeComment, writeComment, writeComment, writeComment, writeComment, writeComment
backTab, changeTabLevel, close, defineBlockComment, disableBlockComment, disableLineBreak, enableBlockComment, enableLineBreak, enableLineBreak, flushPrintWriter, getPrintWriter, popLineBreak, print, printAligned, println, println, printlnUnformatted, printSpaces, printUnformatted, pushLineBreak, restoreFirstTabStop, setFirstTabStop, setLineBreakString, setStrictBreaking, setTabSpacing, setTemporaryFirstTabStop, tab
protected boolean d_skipIncludeGuard
protected LineCountingFilterWriter d_lcfw
public LanguageWriterForMatlab(java.io.PrintWriter writer, Context context)
LanguageWriterForMatlab
instance that will send
output to the specified print writer object. Set up the output
properties of the language writer for C, which sets the first tab
stop at zero, a tab spacing of three, and line breaking at column
eighty.public LanguageWriterForMatlab(java.io.PrintWriter writer, LineCountingFilterWriter lcfw, Context context)
LanguageWriterForMatlab
instance that will send
output to the specified print writer object. Set up the output
properties of the language writer for C, which sets the first tab
stop at zero, a tab spacing of three, and line breaking at column
eighty.public void writeSplicerTagLine(java.lang.String tagLine)
writeSplicerTagLine
in class LanguageWriter
public void skipIncludeGuard()
public void redirectBegin(java.lang.String path, int line)
redirectBegin
in interface LineRedirector
public void redirectEnd(java.lang.String path, int line)
redirectEnd
in interface LineRedirector
public int getLineCount()
getLineCount
in interface LineRedirector
public void beginBlockComment(boolean is_doc)
beginBlockComment
in class LanguageWriter
public void endBlockComment(boolean is_doc)
endBlockComment
in class LanguageWriter
public void writeCommentLine(java.lang.String comment)
writeCommentLine
in class LanguageWriter
comment
- a single line comment to include in the outputLanguageWriter.safeCommentString(java.lang.String)
public void generateInclude(java.lang.String file, boolean guards)
public void generateSystemInclude(java.lang.String file)
public void openHeaderGuard(java.lang.String file)
public void closeHeaderGuard()
public void openCxxExtern()
public void closeCxxExtern()
public java.lang.String getIncludeGuard(java.lang.String file)
public static java.lang.String toSafeString(java.lang.String str)
str
- a string to make safe for inclusion in a stringpublic final java.lang.String safeCommentString(java.lang.String str)
safeCommentString
in class LanguageWriter
str
- a string to make safe for inclusion in a commentpublic static java.lang.String toSafeComment(java.lang.String str)
str
- a string to make safe for inclusion in a comment