#include "defs.h"#include "names.h"#include "output.h"Include dependency graph for output.c:

Go to the source code of this file.
Defines | |
| #define | TRUE 1 |
| #define | FALSE 0 |
| #define | OPNEG_KLUDGE (sizeof(opcode_table)/sizeof(table_entry) - 1) |
| #define | cpd(n) cp->vstg ? cp->Const.cds[n] : dtos(cp->Const.cd[n]) |
Functions | |
| static void output_arg_list | Argdcl ((FILEP, struct Listblock *)) |
| static void output_binary | Argdcl ((FILEP, Exprp)) |
| static void output_literal | Argdcl ((FILEP, long, Constp)) |
| static void output_prim | Argdcl ((FILEP, struct Primblock *)) |
| void | expr_out (FILE *fp, expptr e) |
| void | out_and_free_statement (FILE *outfile, expptr expr) |
| int | same_ident (expptr left, expptr right) |
| static int | samefpconst (register Constp c1, register Constp c2, register int n) |
| static int | sameconst (register Constp c1, register Constp c2) |
| int | same_expr (expptr e1, expptr e2) |
| void | out_name (FILE *fp, Namep namep) |
| void | out_const (FILE *fp, register Constp cp) |
| static void | out_args (FILE *fp, expptr ep) |
| void | out_addr (FILE *fp, struct Addrblock *addrp) |
| static void | output_literal (FILE *fp, long memno, Constp cp) |
| static void | output_prim (FILE *fp, struct Primblock *primp) |
| static void | output_arg_list (FILE *fp, struct Listblock *listp) |
| static void | output_unary (FILE *fp, struct Exprblock *e) |
| static char * | findconst (register long m) |
| static int | opconv_fudge (FILE *fp, struct Exprblock *e) |
| static void | output_binary (FILE *fp, struct Exprblock *e) |
| void | out_call (FILE *outfile, int op, int ftype, expptr len, expptr name, expptr args) |
| char * | flconst (char *buf, char *x) |
| char * | dtos (double x) |
| void | out_init (Void) |
| void | extern_out (FILE *fp, Extsym *extsym) |
| static void | output_list (FILE *fp, struct Listblock *listp) |
| void | out_asgoto (FILE *outfile, expptr expr) |
| void | out_if (FILE *outfile, expptr expr) |
| static void | output_rbrace (FILE *outfile, char *s) |
| void | out_else (FILE *outfile) |
| void | elif_out (FILE *outfile, expptr expr) |
| void | endif_out (FILE *outfile) |
| void | end_else_out (FILE *outfile) |
| void | compgoto_out (FILE *outfile, expptr index, expptr labels) |
| void | out_for (FILE *outfile, expptr init, expptr test, expptr inc) |
| void | out_end_for (FILE *outfile) |
Variables | |
| char | _assoc_table [] = { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } |
| table_entry | opcode_table [] |
| int | dneg |
| int | trapuv |
| static char | opeqable [sizeof(opcode_table)/sizeof(table_entry)] |
| char | tr_tab [Table_size] |
| #define FALSE 0 |
Definition at line 32 of file output.c.
Referenced by __PARAMS(), _BuildLineTable(), _PARAMS(), _XawImInitialize(), _XawImRealize(), _XawImSetValues(), _XawMultiSave(), _XawMultiSourceFreeString(), _XawTextDoReplaceAction(), _XawTextDoSearchAction(), _XawTextPrepareToUpdate(), _XawTextReplace(), _XawTextShowPosition(), _XawTextVScroll(), AboutDlgProc(), ActionAbort(), ActionMove(), ActionNotify(), ActionPage(), ActionSet(), ActionStop(), ActivateTransparencyMode(), AddMenu(), AddSearchChildren(), AddToScilabDllPathEnv(), AllocBotShadowPixmap(), AllocTopShadowPixmap(), AppendHashTableLocalization(), AppendMessageToLog(), AppendModules(), axesplot(), btn_pressed(), BuildWithVS8ExpressF2C(), C2F(), Callback_HELP(), Callback_NEWSCILAB(), Callback_OPEN(), Callback_PASTE(), Callback_PRINT(), Callback_SAVE(), Callback_SCIPAD(), Callback_TOOLBAR(), champg(), ChangeCursorWhenScilabIsReady(), ChangeFormGeometry(), ChangeManaged(), ChangeSize(), CheckDisplay(), checkPolygon(), checkPolygons(), checkRedrawing(), CheckVBarScrolling(), checkXAxes2dTics(), checkYAxes2dTics(), ChooseColorBox(), ChooseDlgProc(), ChooseScilabDlgProc(), CleanBuffers(), CleanClipboard(), ClearAbove(), clearareaPos(), ClearBelow(), ClearCommandWindow(), ClearScreen(), clearwindowXfig(), closeGraphicModule(), closeGraphicSession(), CommandByFileExtension(), ComputeNbSubTics(), ComputeNbSubTicsFor3dUse(), ComputeXIntervals(), ConfigurePrinterDialogBox(), Console_Main(), ConstraintDestroy(), ConstraintSetValues(), ConstructLabel(), ConstructLegend(), ConstructTitle(), conv_10(), conv_fp(), ConvertPathUnixToWindowsFormat(), ConvertPathWindowsToUnixFormat(), ConvertSelection(), CopyAtlas(), CopyPrint(), CopyToClipboardBitmap(), CopyToClipboardEMF(), Create_JVM_Thread_CONSOLE(), CreateButton(), CreateDir(), CreateGC(), CreateGCs(), CreateGraphToolBar(), CreateIC(), CreateIcTable(), CreateLocalFunctionsTab(), CreateScilabConsole(), CvtStringToBlock(), CvtStringToEditMode(), CvtStringToLayout(), CvtStringToResizeMode(), CvtStringToScrollMode(), CvtStringToWrapMode(), DDECloseConnection(), DDEExecute(), DDEOpenConnection(), DDEPoke(), DDERequest(), DecreaseAlphaLevel(), delbtn(), DeleteAKey(), DeleteBackwardChar(), DeleteBackwardWord(), DeleteCurrentSelection(), DeleteForwardChar(), DeleteForwardWord(), DeleteLine(), DestroyAllIM(), DestroyIC(), DestroyMerge(), destroyScilabGetHashTable(), destroyScilabSetHashTable(), DetectFrameWorkNET2(), DialogWindow(), DisableInteractiveMode(), DisableTransparencyMode(), displaynumbersPos(), displaynumbersXfig(), displaystringPos(), displaystringXfig(), DisplayText(), DisplayTextWindow(), Dispose_SciGUIConsole(), DisposeFFTWLibrary(), DisposeModulesInfo(), do_jumpscroll(), do_scrollbar(), do_select_start(), do_softreset(), do_start_extend(), DoExtension(), domenu(), DoReplaceAll(), DoReplaceOne(), DoSearch(), DragFunc(), draw_it(), drawarcPos(), drawarcsPos(), drawarcsXfig(), drawarcsXfig_old(), drawarcXfig(), drawarcXfig_old(), drawarrowsPos(), drawarrowsXfig(), drawaxisPos(), drawaxisXfig(), drawClippedPolylineXfig(), drawlinePos(), drawlineXfig(), drawPolylineEntity(), drawpolylinePos(), drawpolylinesPos(), drawpolylinesXfig(), drawpolylineXfig(), drawpolymarkPos(), drawpolymarkXfig(), drawrectanglePos(), drawrectanglesPos(), drawrectanglesXfig(), drawrectangleXfig(), drawsegmentsPos(), drawsegmentsXfig(), drawSegsEntity(), DrawXGrid(), DrawXSubTics(), DrawXTics(), DrawYGrid(), DrawYSubTics(), DrawYTics(), Events_Loop_SciGUIConsole(), ExistDir(), ExistFunction(), ExistModelicac(), ExistScicos(), ExitWindow(), ExportBMP(), ExportEMF(), ExportStyle(), ExportStyleDlgProc(), ExposeChooseWindow(), ExposePrintdialogWindow(), ExtendSelection(), externaldef(), fec(), FigureToPrint(), FileExist(), FilesAssociationDlgProc(), fillarcPos(), fillarcsPos(), fillarcsXfig(), fillarcsXfig_old(), fillarcXfig(), fillarcXfig_old(), FillArea(), fillpolylinePos(), fillpolylinesPos(), fillpolylinesXfig(), fillpolylineXfig(), fillrectanglePos(), fillrectangleXfig(), FindPosition(), FlushScroll(), ForbiddenToUseScilab(), FormParagraph(), FreeElmsArray(), FreeJVMDll(), FreeVariableStructArray(), FromAlternate(), gdImageCreateFromGif(), GeometryManager(), get_dash_and_color_Pos(), get_dash_and_color_Xfig(), get_dash_or_color_Pos(), get_dash_or_color_Xfig(), get_event_xy(), get_nax_arg(), get_queuename(), get_with_mesh_arg(), getabsourelPos(), getalufunctionPos(), getbackgroundPos(), getbackgroundXfig(), getChampDataBounds(), GetChilds(), getclipPos(), GetCode_(), getcolormapPos(), getcolormapsizePos(), getcolormapsizeXfig(), getcolormapXfig(), GetCommandFromAnotherScilab(), getcursymbolXfig(), getcurwinPos(), GetDLLFilenameAtlas(), GetFileWindow(), getforegroundPos(), getforegroundXfig(), GetGC(), gethidden3dPos(), gethidden3dXfig(), GetInfoCPUfromLine(), GetIsAxes2D(), GetJVMDll(), GetLastJob(), getlastPos(), getNbSubMenus(), getpatternPos(), GetStateToolBarWin32(), getStringBox(), getthicknessPos(), getusecolorPos(), getusecolorXfig(), getversionmodule(), gp_printfile(), GPopupResize(), GradFixedlog(), HandleBellPropertyChange(), HandleFocusChange(), HandleGrip(), HasAZoneTextSelected(), HaveAnotherWindowScilab(), HideGraphToolBar(), HideToolBarWin32(), IncreaseAlphaLevel(), InitAxesModel(), InitCheckBox(), InitFigureModel(), initgraphic(), InitGWStruct(), Initialize(), Initialize_SciGUIConsole_Object(), InitializeCore(), InitializeHashTableScilabErrors(), InitializeHashTableScilabMenus(), InitializeHashTableScilabMessages(), InitializeJVM(), InitializeLocalization(), InitializeTclTk(), initLabel(), InitMWStruct(), InitScreenBuffer(), InitStringOrFile(), initsubwin(), InitTWStruct(), InitWindowGraphDll(), Input(), InputBoxDlgProc(), InsertChild(), InsertFileNamed(), InsertLine(), InsertNewLineAndIndent(), Is_a_correct_function_name(), is_a_valid_size_for_scilab_stack(), is_dead_key(), IsABinOrSavFile(), IsACommand(), IsAFile(), IsAGraphFile(), IsAGraphFilegraph(), IsAGraphFilegraphb(), IsAScicosFile(), IsAScicosFileCOS(), IsAScicosFileCOSF(), IsASpecialKey(), IsCreatedIC(), IsDownAxes(), IsEmptyClipboard(), IsEnabled_SciGUIConsole(), IsEntityPickerMenu(), isFittingInCell(), isGedOpenedOn(), Ishidden(), IsInsideRectangle(), isListCurrentElementEmptyMatrix(), IsLoadedFFTW(), IsRegistered(), isStringParamEqual(), IsTheGoodShell(), IsToThePrompt(), ItemInRectangle(), JVM_Create_SciGUIConsole_Object(), Kill_Scilex(), KillBackwardWord(), KillForwardWord(), KillTimerLeft(), KillTimerMiddle(), KillTimerRight(), KillToEndOfLine(), KillToEndOfParagraph(), LanguageIsOK(), LaunchFilebyExtension(), Layout(), List_free_item_with_check(), Load_primitives_from_file(), LoadArrayCPUFromFile(), LoadFFTWLibrary(), LoadHashTableLocalization(), LoadHashTablesLocalization(), loadlanguagepref_linux(), LoopAndRefigureChildren(), LWZReadByte_(), main(), MAIN__(), MakeSetValuesRequest(), match(), MatDialogProc(), MatrixDialogWindow(), MChoicePage(), MDialogPage(), MessageBoxNewGraphicModeDlgProc(), mouse_moved(), move_shadow(), MoveBackwardParagraph(), MoveBackwardWord(), MoveForwardParagraph(), MoveForwardWord(), MoveLine(), MoveToLineEnd(), MoveToLineStart(), needtochangelanguage(), NoRegistered(), Objarc(), Objdrawaxis(), Objfpoly(), Objmove(), Objplot3d(), Objpoly(), Objrect(), Objsegs(), Objstring(), Objtitle(), ON_ABOUT_WM_COMMAND(), ON_EVENT_GRAPH_WM_LBUTTONDBLCLK(), ON_EVENT_GRAPH_WM_LBUTTONDOWN(), ON_EVENT_GRAPH_WM_LBUTTONUP(), ON_EVENT_GRAPH_WM_MBUTTONDBLCLK(), ON_EVENT_GRAPH_WM_MBUTTONDOWN(), ON_EVENT_GRAPH_WM_MBUTTONUP(), ON_EVENT_GRAPH_WM_MOUSEMOVE(), ON_EVENT_GRAPH_WM_RBUTTONDBLCLK(), ON_EVENT_GRAPH_WM_RBUTTONDOWN(), ON_EVENT_GRAPH_WM_RBUTTONUP(), ON_FILESASSOCIATIONBOX_WM_COMMAND(), ON_MESSAGEBOXNEWGRAPHICMODE_WM_COMMAND(), ON_WND_CONSOLE_WM_DESTROY(), ON_WND_CONSOLE_WM_ENTERSIZEMOVE(), ON_WND_GRAPH_WM_DESTROY(), ON_WND_GRAPH_WM_HSCROLL(), ON_WND_GRAPH_WM_KEY(), ON_WND_GRAPH_WM_SIZE(), ON_WND_GRAPH_WM_VSCROLL(), ON_WND_PARENTGRAPH_WM_DESTROY(), ON_WND_PARENTGRAPH_WM_EXITSIZEMOVE(), ON_WND_TEXT_WM_COMMAND(), ON_WND_TEXT_WM_KEY(), ON_WND_TEXT_WM_KILLFOCUS(), ON_WND_TEXT_WM_LBUTTONUP(), ON_WND_TEXT_WM_MBUTTONUP(), ON_WND_TEXT_WM_SIZE(), OpenSaveSCIFile(), out_call(), pal_setcolormap(), PaneSetValues(), parse_args(), parse_page_string(), plot2dn(), PopdownSearch(), PopPaneStack(), PositionForXY(), PositionMenu(), PreferredSize(), PrintDlgProc(), PrintPs(), PutString(), PutString_SciGUIConsole(), ReadColorMap(), ReadImage(), ReadModulesFile(), ReadRegistryGraph(), ReadRegistryTxt(), Realize(), ReceiveFromAnotherScilab(), Reconnect(), Redisplay(), Register(), RegisterParentWindowClass(), RegisterParentWindowGraphClass(), RegisterTextWindowClass(), RegisterToVendorShell(), RegisterWindowGraphClass(), RemoveCharsFromEOL(), RemoveComments(), RemoveDir(), RemoveHastable_string(), RenameConsole(), repaint_window(), Replace(), ReplacePrompt(), reset_click_counter(), reset_left_click_counter(), reset_middle_click_counter(), reset_right_click_counter(), Resize(), ResizeScreenBuffer(), ResizeVendorShell(), ResizeVendorShell_Core(), Resolve(), ReturnValueSetenv(), RevScroll(), SaveCurrentLine(), savelanguagepref_linux(), SavePs(), Scan(), sci_clc(), sci_drawlater(), sci_fec(), sci_grayplot(), sci_matplot(), sci_move(), sci_plot2d(), sci_plot2d1_G(), sci_raise_window(), sci_set(), sci_update_frame_bounds_2d(), sci_update_frame_bounds_3d(), sci_xarc(), sci_xarcs(), sci_xfarcs(), sci_xget(), sci_xpoly(), sci_xrect(), sci_xrects(), sci_xset(), sci_xstring(), sci_xstringb(), sci_xtitle(), sciAddThisToItsParent(), sciCanBeSonOf(), SciChoiceI(), sciDelThisToItsParent(), SciDialogDlgProc(), sciGetAddPlot(), sciGetAutoPosition(), sciGetAutoRotation(), sciGetAutoScale(), sciGetAutoSize(), sciGetCenterPos(), sciGetdrawmode(), sciGetHighLight(), sciGetIs3d(), sciGetIsFigureIconified(), sciGetIsMark(), sciGetLegendDefined(), sciGetRealVisibility(), sciGetResize(), sciGetXorMode(), sciGetZooming(), sciInitGraphicContext(), sciInitGraphicMode(), sciInitIs3d(), sciIsAreaZoom(), sciIsClicked(), sciIsMergeable(), ScilabGResize(), ScilabPaint(), SciMessageDlgProc(), SciPalette(), SciViewportMove(), sciXclear(), Scroll(), SearchBackwardInHistory(), SearchForwardInHistory(), SelectWord(), SendCommandToAnotherScilab(), SendGraphMacro(), SendInputText(), SendMacroEntityPicker(), SendScilabJobs(), set_auto_clear_property(), set_auto_dimensionning_property(), set_auto_position_property(), set_auto_resize_property(), set_auto_rotation_property(), set_auto_scale_property(), set_auto_ticks_property(), set_axes_reverse_property(), set_axes_visible_property(), set_box_property(), set_color(), set_cube_scaling_property(), set_dash_and_color_Pos(), set_dash_and_color_Xfig(), set_dash_or_color(), set_dash_or_color_Pos(), set_dash_or_color_Xfig(), set_data_bounds_property(), set_fill_mode_property(), set_font_angle_property(), set_handle_visible_property(), Set_HOME_PATH(), set_immediate_drawing_property(), set_interp_color_mode_property(), set_isoview_property(), set_line_mode_property(), set_line_style_Pos(), set_line_style_Xfig(), set_mark_mode_property(), set_menu_enable_property(), set_pattern_or_color(), set_position_property(), Set_SCI_PATH(), Set_Shell(), set_surface_mode_property(), Set_TCL_LIBRARY_PATH(), set_text_box_mode_property(), set_tight_limits_property(), Set_TK_LIBRARY_PATH(), set_view_property(), set_viewport_property(), set_visible_property(), set_x_ticks_property(), set_y_ticks_property(), set_z_ticks_property(), set_zoom_state_property(), setabsourelPos(), setalufunction1Pos(), setalufunction1Xfig(), setalufunctionPos(), setalufunctionXfig(), setclipPos(), setclipXfig(), setcolormapPos(), setcolormapXfig(), setcursymbolXfig(), setcurwinPos(), setdashPos(), setdashXfig(), setenvc(), setenvtcl(), SetFocus(), SetFocusValues(), setgccolormapPos(), setgccolormapXfig(), sethidden3dPos(), sethidden3dXfig(), SetICFocus(), SetICValues(), SetIhmSystemDefaultTextBackgroundColor(), SetIhmSystemDefaultTextColor(), SetIhmTextBackgroundColor(), SetIhmTextColor(), setlanguage(), setlanguagecode(), SetLastJob(), setpatternPos(), SetResourceByName(), setSCIHOME(), setSubWinAngles(), SetTabs(), setthicknessPos(), settmpdir(), SetUnsetMenu(), SetValues(), SetValuesHook(), SetVarAString(), SetVariablesStructs(), SetVarMatrix(), SetVarScalar(), SetVarStrings(), setwindowdim(), SetWITH_GUI(), setwresize(), SortStrings(), SortVarsStructByStrings(), squash_spaces(), StartJVM_CONSOLE(), StartJVMs(), StartScilab(), strflag2axes_properties(), StripOutOldCRs(), SwitchBufs(), systemc(), TCL_ArrayDim(), TCL_ArrayExist(), Terminate_JVM_Thread_CONSOLE(), TerminateJVM_CONSOLE(), TerminateJVMs(), TerminateScilab(), TestRegistryKey(), TextFocusOut(), TextGetCh(), TextInit(), tic(), ToolBarWin32(), TranslateExposeRegion(), TryNewLayout(), Unset(), unsetclipPos(), unsetclipXfig(), UnsetICFocus(), update_specification_bounds(), UpdateAKey(), UpdateFileGraphNameMenu(), UpdateFileNameMenu(), UpdateMark(), updateMerge(), UpdateSubwinScale(), UpdateTextInLine(), usecolorPos(), usecolorXfig(), VerifyModule(), VJump(), VTInitialize(), VTRealize(), VTReset(), VTSetValues(), Windows_Main(), WindowScroll(), WindowsQueryRegistry(), WindowsQueryRegistryList(), WindowsQueryRegistryNumberOfElementsInList(), WinMain(), with_module(), write_history(), WriteColorRGB(), WriteIntoKeyBuffer(), WriteIntoScilab(), WriteTextThread(), WriteToFile(), XawAsciiSave(), XawAsciiSourceFreeString(), XawTreeForceLayout(), XawVendorShellClassPartInit(), XawVendorShellExtSetValues(), XawVendorShellSetValues(), xdialg(), xdialg1(), XDPi2R(), xendgraphicPos(), xendgraphicXfig(), xgetfile(), xgetfontXfig(), XGradPosition(), xgray(), xgray1(), XLogScale(), xmatdg(), xmdial(), XmuInternStrings(), XPi2R(), XScale(), xsetfontXfig(), xsetg(), YDPi2R(), YGradPosition(), YLogScale(), YPi2R(), zoom_box(), and zzledt().
| #define OPNEG_KLUDGE (sizeof(opcode_table)/sizeof(table_entry) - 1) |
| #define TRUE 1 |
Definition at line 29 of file output.c.
Referenced by __PARAMS(), _BuildLineTable(), _DeleteOrKill(), _PARAMS(), _SelectionReceived(), _XawImSetFocusValues(), _XawMultiSave(), _XawTextAlterSelection(), _XawTextBuildLineTable(), _XawTextCheckResize(), _XawTextDoReplaceAction(), _XawTextDoSearchAction(), _XawTextReplace(), _XawTextSetField(), _XawTextSetScrollBars(), _XawTextShowPosition(), AboutDlgProc(), ActionPage(), ActionSet(), ActionStart(), ActivateTransparencyMode(), AdaptGraduationsOnXBottomLeft(), AdaptGraduationsOnXBottomRight(), AdaptGraduationsOnYBottomLeft(), AdaptGraduationsOnYBottomRight(), AdaptGraduationsOnZ(), AddInsertFileChildren(), AddSearchChildren(), allocateText(), AllocBotShadowPixmap(), AllocTopShadowPixmap(), AppendHashTableLocalization(), AppendMessageToLog(), arg_verify(), AutoFill(), axesplot(), Bell(), btn_pressed(), btn_released(), BuildWithVS8ExpressF2C(), C2F(), Callback_BACKGROUNDCOLOR(), Callback_CLEARCOMMANDWINDOW(), Callback_CLEARHISTORY(), Callback_EXEC(), Callback_GETF(), Callback_LOAD(), Callback_MCOPY(), Callback_OPEN(), Callback_RESTART(), Callback_SAVE(), Callback_SELECTALL(), Callback_TEXTCOLOR(), champg(), ChangeFormGeometry(), ChangeManaged(), CheckDisplay(), checkPolygon(), checkPolygons(), checkRedrawing(), checkXAxes2dTics(), checkYAxes2dTics(), ChooseColorBox(), ChooseDlgProc(), ChoosePaneToResize(), ChooseScilabBox(), ChooseScilabDlgProc(), CleanBuffers(), ClearCommandWindow(), ClearLinesScreenConsole(), ClearMark(), CommandByFileExtension(), ComputeXIntervals(), ConfigurePrinterDialogBox(), Console_Main(), ConstructArc(), ConstructCompound(), ConstructCompoundSeq(), ConstructFec(), ConstructGrayplot(), ConstructLabel(), ConstructLegend(), ConstructPolyline(), ConstructRectangle(), ConstructSegs(), ConstructSurface(), ConstructTitle(), ConstructUimenu(), ConvertPathUnixToWindowsFormat(), ConvertPathWindowsToUnixFormat(), ConvertSelection(), CopyAtlas(), CopyPrint(), CopyToClipboardBitmap(), CopyToClipboardEMF(), Create_JVM_Thread_CONSOLE(), CreateButton(), CreateDialog(), CreateDir(), CreateGraphToolBar(), CreateLocalFunctionsTab(), CreatePrettyGradsFromNax(), createScilabGetHashTable(), createScilabSetHashTable(), CvtStringToBlock(), CvtStringToEditMode(), CvtStringToLayout(), CvtStringToResizeMode(), CvtStringToScrollMode(), CvtStringToWrapMode(), DDECloseConnection(), DDEExecute(), DDEOpenConnection(), DDEPoke(), DDERequest(), DeleteAKey(), DeleteBackwardChar(), DeleteForwardChar(), DetectFrameWorkNET2(), DialogWindow(), DisableTransparencyMode(), DisplayText(), Dispose_SciGUIConsole(), DisposeFFTWLibrary(), DispStringAngle(), do_clearsavedlines(), do_hardreset(), do_jumpscroll(), do_xxprintf(), do_xxscanf(), domenu(), DoReplaceOne(), DoSearch(), draw_it(), DrawMerge3d(), drawPolylineEntity(), Events_Loop_SciGUIConsole(), ExistDir(), ExistFunction(), ExistScicos(), ExportBMP(), ExportEMF(), ExportStyle(), ExportStyleDlgProc(), ExposeChooseWindow(), ExposePrintdialogWindow(), externaldef(), fac3dn(), fec(), FigureToPrint(), FileExist(), FileInit(), FileInitFromScreenPos(), FileInitFromScreenXfig(), FileInitXfig(), FilesAssociationDlgProc(), FindPosition(), ForbiddenToUseScilab(), FormRegion(), FreeElmsArray(), FreeJVMDll(), FreeVariableStructArray(), Gen3DPoints(), GeometryManager(), get_event_xy(), get_nax_arg(), get_queuename(), GetChilds(), GetCode_(), GetCommandFromAnotherScilab(), GetDLLFilenameAtlas(), GetEventKeyboardAndMouse(), GetFileWindow(), GetHandleVisibilityOnUimenu(), GetInfoCPUfromLine(), GetIsAxes2D(), GetJVMDll(), GetLastJob(), GetStringRaw(), getversionmodule(), GetXPosButton(), gp_printfile(), GPopupResize(), GradFixedlog(), graphicsmodels(), GraySquare1_NGreverse(), HasAZoneTextSelected(), HaveAnotherWindowScilab(), HideToolBar(), HideToolBarWin32(), Highlight(), I3dRotation(), IncreaseAlphaLevel(), InitAxesModel(), InitCheckBox(), InitFigureModel(), initgraphic(), Initialize(), Initialize_SciGUIConsole_Object(), InitializeHashTableScilabErrors(), InitializeHashTableScilabMenus(), InitializeHashTableScilabMessages(), InitializeLocalization(), InitializeSearchWidget(), initLabel(), InitScreenBuffer(), InitStringOrFile(), Input(), InputBoxDlgProc(), InsertChar(), InsertChild(), InsertFileNamed(), InsertNewCRs(), InsertNewLineAndIndent(), InsertString(), int_error(), inter(), Is_a_correct_function_name(), is_a_valid_size_for_scilab_stack(), is_dead_key(), IsABinOrSavFile(), IsACommand(), IsAFile(), IsAGraphFile(), IsAGraphFilegraph(), IsAGraphFilegraphb(), IsAScicosFile(), IsAScicosFileCOS(), IsAScicosFileCOSF(), IsASpecialKey(), IsCreatedIC(), IsDownAxes(), IsEmptyClipboard(), IsEntityPickerMenu(), isFittingInCell(), isGedOpenedOn(), Ishidden(), IsInsideRectangle(), isListCurrentElementEmptyMatrix(), IsLoadedFFTW(), IsRegistered(), isStringParamEqual(), IsTheGoodShell(), IsToThePrompt(), ItemInRectangle(), JVM_Create_SciGUIConsole_Object(), KillBackwardWord(), KillCurrentSelection(), KillForwardWord(), KillToEndOfLine(), KillToEndOfParagraph(), LanguageIsOK(), LaunchFilebyExtension(), Layout(), List_free_item_with_check(), Load(), Load_primitives_from_file(), LoadArrayCPUFromFile(), LoadFFTWLibrary(), loadGraphicModule(), LoadHashTableLocalization(), LoadHashTablesLocalization(), loadlanguagepref_linux(), LoadNewFont(), LocalInsertNewLine(), LoopAndRefigureChildren(), LWZReadByte_(), main(), MakeSetValuesRequest(), MatDialogProc(), MatrixDialogWindow(), MChoicePage(), MDialogPage(), Merge3d(), move_shadow(), MoveBackwardChar(), MoveBeginningOfFile(), MoveEndOfFile(), MoveForwardChar(), needtochangelanguage(), NoRegistered(), Objfpoly(), Objplot3d(), Objpoly(), ON_ABOUT_WM_COMMAND(), ON_ABOUT_WM_INITDIALOG(), ON_EVENT_GRAPH_WM_LBUTTONDBLCLK(), ON_EVENT_GRAPH_WM_LBUTTONDOWN(), ON_EVENT_GRAPH_WM_LBUTTONUP(), ON_EVENT_GRAPH_WM_MBUTTONDBLCLK(), ON_EVENT_GRAPH_WM_MBUTTONDOWN(), ON_EVENT_GRAPH_WM_MBUTTONUP(), ON_EVENT_GRAPH_WM_RBUTTONDBLCLK(), ON_EVENT_GRAPH_WM_RBUTTONDOWN(), ON_EVENT_GRAPH_WM_RBUTTONUP(), ON_FILESASSOCIATIONBOX_WM_COMMAND(), ON_FILESASSOCIATIONBOX_WM_INITDIALOG(), ON_MESSAGEBOXNEWGRAPHICMODE_WM_COMMAND(), ON_MESSAGEBOXNEWGRAPHICMODE_WM_INITDIALOG(), ON_WND_CONSOLE_WM_CLOSE(), ON_WND_CONSOLE_WM_COMMAND(), ON_WND_CONSOLE_WM_COPYDATA(), ON_WND_CONSOLE_WM_CREATE(), ON_WND_CONSOLE_WM_DESTROY(), ON_WND_CONSOLE_WM_DROPFILES(), ON_WND_CONSOLE_WM_ENDSESSION(), ON_WND_CONSOLE_WM_ENTERSIZEMOVE(), ON_WND_CONSOLE_WM_EXITSIZEMOVE(), ON_WND_CONSOLE_WM_GETMINMAXINFO(), ON_WND_CONSOLE_WM_PAINT(), ON_WND_CONSOLE_WM_SETFOCUS(), ON_WND_CONSOLE_WM_SIZE(), ON_WND_CONSOLE_WM_SYSCOLORCHANGE(), ON_WND_CONSOLE_WM_SYSCOMMAND(), ON_WND_GRAPH_WM_CLOSE(), ON_WND_GRAPH_WM_COMMAND(), ON_WND_GRAPH_WM_CREATE(), ON_WND_GRAPH_WM_DESTROY(), ON_WND_GRAPH_WM_DROPFILES(), ON_WND_GRAPH_WM_HSCROLL(), ON_WND_GRAPH_WM_PAINT(), ON_WND_GRAPH_WM_SIZE(), ON_WND_GRAPH_WM_VSCROLL(), ON_WND_PARENTGRAPH_WM_CLOSE(), ON_WND_PARENTGRAPH_WM_COMMAND(), ON_WND_PARENTGRAPH_WM_CREATE(), ON_WND_PARENTGRAPH_WM_DESTROY(), ON_WND_PARENTGRAPH_WM_DROPFILES(), ON_WND_PARENTGRAPH_WM_GETMINMAXINFO(), ON_WND_PARENTGRAPH_WM_PAINT(), ON_WND_PARENTGRAPH_WM_SETFOCUS(), ON_WND_PARENTGRAPH_WM_SIZE(), ON_WND_PARENTGRAPH_WM_SYSCOMMAND(), ON_WND_TEXT_WM_CLOSE(), ON_WND_TEXT_WM_COMMAND(), ON_WND_TEXT_WM_CREATE(), ON_WND_TEXT_WM_DESTROY(), ON_WND_TEXT_WM_HSCROLL(), ON_WND_TEXT_WM_KEY(), ON_WND_TEXT_WM_LBUTTONDOWN(), ON_WND_TEXT_WM_MOUSEMOVE(), ON_WND_TEXT_WM_PAINT(), ON_WND_TEXT_WM_SETCURSOR(), ON_WND_TEXT_WM_SETFOCUS(), ON_WND_TEXT_WM_SIZE(), ON_WND_TEXT_WM_SYSCOLORCHANGE(), ON_WND_TEXT_WM_VSCROLL(), openGraphicSession(), OpenSaveSCIFile(), out_call(), PaintThumb(), PaneSetValues(), parse_args(), parse_page_string(), plot2dn(), plot3dn(), PopPaneStack(), PositionForXY(), PrintDlgProc(), PrintFile(), PrintString(), prtdlg(), PutString(), PutString_SciGUIConsole(), read_history(), ReadColorMap(), ReadImage(), ReadRegistryGraph(), ReadRegistryTxt(), Realize(), rebuild_strflag(), ReceiveFromAnotherScilab(), RefreshGraphToolBar(), RegisterParentWindowClass(), RegisterParentWindowGraphClass(), RegisterTextWindowClass(), RegisterToVendorShell(), RegisterWindowGraphClass(), reinitSubWin(), RemoveCharsFromEOL(), RemoveDir(), RemoveHastable_string(), Replace(), ReplacePrompt(), ReplaceText(), rescale(), Resize(), ResizeScreenBuffer(), ResizeVendorShell_Core(), ReturnValueSetenv(), rlgets(), rlgets_nw(), Save(), SaveCurrentLine(), savelanguagepref_linux(), SavePs(), scale_knob(), Scan(), Sci_Axis(), sci_drawnow(), sci_move(), sci_raise_window(), sci_UImenu(), sci_xarc(), sci_xarcs(), sci_xfarcs(), sci_xget(), sci_xpoly(), sci_xrect(), sci_xrects(), sci_xset(), sci_xstring(), sci_xstringb(), sci_xtitle(), sciAddThisToItsParent(), SciAxisNew(), SciChoiceI(), sciClip(), sciDelThisToItsParent(), SciDialogDlgProc(), SciDrawLines(), SciEnvForWindows(), sciGetLegendDefined(), sciGetVisibility(), sciInitGraphicContext(), sciInitGraphicMode(), sciInitIs3d(), sciInitScrollBar(), sciIsAreaZoom(), sciIsClicked(), sciIsMergeable(), ScilabGResize(), ScilabPaint(), SciMakeFont(), SciMessageDlgProc(), SciPalette(), SciShowAllUimenus(), sciStandrardBuildOperations(), SciViewportMove(), Search(), SelectAll(), SendCommandToAnotherScilab(), SendGraphMacro(), SendInputText(), SendMacro(), SendMacroEntityPicker(), SendScilabJobs(), Set(), set_auto_clear_property(), set_auto_dimensionning_property(), set_auto_position_property(), set_auto_resize_property(), set_auto_rotation_property(), set_auto_scale_property(), set_auto_ticks_property(), set_axes_reverse_property(), set_axes_visible_property(), set_box_property(), set_cube_scaling_property(), set_fill_mode_property(), set_handle_visible_property(), Set_HOME_PATH(), set_immediate_drawing_property(), set_interp_color_mode_property(), set_isoview_property(), set_line_mode_property(), set_mark_mode_property(), set_mark_style_property(), set_menu_enable_property(), Set_SCI_PATH(), Set_Shell(), Set_SOME_ENVIRONMENTS_VARIABLES_FOR_SCILAB(), set_sub_tics_property(), set_surface_mode_property(), Set_TCL_LIBRARY_PATH(), set_text_box_mode_property(), set_tight_limits_property(), Set_TK_LIBRARY_PATH(), set_view_property(), set_visible_property(), set_vt_visibility(), setenvc(), setenvtcl(), SetFromCToON(), SetFromJavaToON(), SetICFocus(), SetICValues(), SetICValuesShared(), SetIhmSystemDefaultTextBackgroundColor(), SetIhmSystemDefaultTextColor(), SetIhmTextBackgroundColor(), SetIhmTextColor(), setlanguage(), setlanguagecode(), SetLastJob(), SetResourceByName(), Setscig_buzyState(), setSCIHOME(), setSubWinAngles(), SetTabs(), SetValues(), SetVarAString(), SetVariablesStructs(), SetVarMatrix(), SetVarScalar(), SetVarStrings(), setwindowdim(), SetWITH_GUI(), ShapeButton(), SharedICChangeFocusWindow(), ShowGraphToolBar(), ShowToolBar(), SortStrings(), SortVarsStructByStrings(), squash_spaces(), StartJVM_CONSOLE(), StartJVMs(), StartScilab(), strflag2axes_properties(), StripOutOldCRs(), TCL_ArrayDim(), Terminate_JVM_Thread_CONSOLE(), TerminateCorePart1(), TerminateCorePart2(), TerminateGraphics(), TerminateGUI(), TerminateJVM_CONSOLE(), TerminateJVMs(), TerminateLocalization(), TerminateScilab(), TerminateTclTk(), TestRegistryKey(), TextFocusIn(), TextGetCh(), TextMakeFont(), TextToCursor(), tic(), ToAlternate(), ToolBarWin32(), TrackDown(), TrackMouse(), TranslateExposeRegion(), TransposeCharacters(), TryNewLayout(), Unhighlight(), Unset(), UnsetICFocus(), UpdateAKey(), UpdateBIN(), UpdateCOS(), UpdateCOSF(), UpdateDEM(), UpdateGRAPH(), UpdateGRAPHB(), UpdateMark(), UpdateSAV(), UpdateSCE(), UpdateSCI(), UpdateSubwinScale(), UpdateText(), UpdateTextInLine(), UpdateTST(), updateXaxesTics(), updateYaxesTics(), VerifyModule(), VTInitialize(), VTRealize(), VTRun(), VTSetValues(), Windows_Main(), WindowsQueryRegistry(), WindowsQueryRegistryList(), WindowsQueryRegistryNumberOfElementsInList(), WinMain(), with_module(), write_history(), WriteIntoKeyBuffer(), WriteIntoScilab(), WriteToFile(), XawAsciiSave(), XawFormDoLayout(), XawTextEnableRedisplay(), XawTextInvalidate(), XawTextReplace(), XawTextSetInsertionPoint(), XawTextSetSource(), XawVendorShellClassPartInit(), XawVendorShellInitialize(), XDPi2R(), xgray(), xgray1(), XLogScale(), XPi2R(), Xputchar(), XScale(), xscimore(), xsetg(), YDPi2R(), YGradPosition(), YLogScale(), YPi2R(), Zoom3d_XPi2R(), Zoom3d_YPi2R(), zoom_box(), and zzledt().
Definition at line 1677 of file output.c.
References Ansi, Chain::datap, ENULL, err, erri(), expr_out(), i, index, ISICON, Expression::listblock, Listblock::listp, next_tab, nice_printf(), OPWHATSIN, prev_tab, s1, s2, Expression::tag, TEXPR, TLIST, TNAME, and user_label().
Referenced by do_p1_comp_goto().
01679 { 01680 char *s1, *s2; 01681 01682 if (index == ENULL) 01683 err ("compgoto_out: null index for computed goto"); 01684 else if (labels && labels -> tag != TLIST) 01685 erri ("compgoto_out: expected label list, got tag '%d'", 01686 labels -> tag); 01687 else { 01688 chainp elts; 01689 int i = 1; 01690 01691 s2 = /*(*/ ") {\n"; /*}*/ 01692 if (Ansi) 01693 s1 = "switch ("; /*)*/ 01694 else if (index->tag == TNAME || index->tag == TEXPR 01695 && index->exprblock.opcode == OPWHATSIN) 01696 s1 = "switch ((int)"; /*)*/ 01697 else { 01698 s1 = "switch ((int)("; 01699 s2 = ")) {\n"; /*}*/ 01700 } 01701 nice_printf(outfile, s1); 01702 expr_out (outfile, index); 01703 nice_printf (outfile, s2); 01704 next_tab (outfile); 01705 01706 for (elts = labels -> listblock.listp; elts; elts = elts -> nextp, i++) { 01707 if (elts -> datap) { 01708 if (ISICON(((expptr) (elts -> datap)))) 01709 nice_printf (outfile, "case %d: goto %s;\n", i, 01710 user_label(((expptr)(elts->datap))->constblock.Const.ci)); 01711 else 01712 err ("compgoto_out: bad label in label list"); 01713 } /* if (elts -> datap) */ 01714 } /* for elts */ 01715 prev_tab (outfile); 01716 nice_printf (outfile, /*{*/ "}\n"); 01717 } /* else */ 01718 } /* compgoto_out */
Here is the call graph for this function:

Here is the caller graph for this function:

| char* dtos | ( | double | x | ) |
Definition at line 1412 of file output.c.
References db_fmt_string, and mem().
Referenced by imagpart(), mkcxcon(), p1_const(), prconr(), putconst(), realpart(), and samefpconst().
01414 { 01415 static char buf[64]; 01416 #ifdef USE_DTOA 01417 g_fmt(buf, x); 01418 #else 01419 sprintf(buf, db_fmt_string, x); 01420 #endif 01421 return strcpy(mem(strlen(buf)+1,0), buf); 01422 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void elif_out | ( | FILE * | outfile, | |
| expptr | expr | |||
| ) |
Definition at line 1636 of file output.c.
References expr(), out_if(), output_rbrace(), and prev_tab.
Referenced by do_p1_elif().
01638 { 01639 prev_tab (outfile); 01640 output_rbrace(outfile, "} else "); 01641 out_if (outfile, expr); 01642 } /* elif_out */
Here is the call graph for this function:

Here is the caller graph for this function:

| void end_else_out | ( | FILE * | outfile | ) |
Definition at line 1661 of file output.c.
References output_rbrace(), and prev_tab.
Referenced by do_p1_endelse().
01663 { 01664 prev_tab (outfile); 01665 output_rbrace(outfile, "}\n"); 01666 } /* end_else_out */
Here is the call graph for this function:

Here is the caller graph for this function:

| void endif_out | ( | FILE * | outfile | ) |
Definition at line 1649 of file output.c.
References output_rbrace(), and prev_tab.
Referenced by do_p1_endif().
01651 { 01652 prev_tab (outfile); 01653 output_rbrace(outfile, "}\n"); 01654 } /* endif_out */
Here is the call graph for this function:

Here is the caller graph for this function:

| void expr_out | ( | FILE * | fp, | |
| expptr | e | |||
| ) |
Definition at line 147 of file output.c.
References CLVAR, done, err, erri(), Expression::exprblock, free(), frexpr(), is_binary_op, is_unary_op, ISICON, ISINT, ISONE, ISREAL, M, Expression::nameblock, nerr, nice_printf(), NULL, ONEOF, op_assign(), OPASSIGN, opeqable, OPMINUSEQ, OPPLUSEQ, OPPREDEC, OPPREINC, out_addr(), out_const(), out_name(), output_binary(), output_list(), output_prim(), output_unary(), Exprblock::rightp, same_ident(), STGARG, STGAUTO, STGBSS, TADDR, Expression::tag, TCONST, TERROR, TEXPR, TIMPLDO, TLIST, TNAME, TPRIM, trapuv, var, and warn().
Referenced by compgoto_out(), do_p1_2while(), do_p1_subr_ret(), opconv_fudge(), out_addr(), out_and_free_statement(), out_args(), out_asgoto(), out_call(), out_for(), out_if(), output_arg_list(), output_binary(), output_list(), and ref_defs().
00149 { 00150 Namep var; 00151 expptr leftp, rightp; 00152 int opcode; 00153 00154 if (e == (expptr) NULL) 00155 return; 00156 00157 switch (e -> tag) { 00158 case TNAME: out_name (fp, (struct Nameblock *) e); 00159 return; 00160 00161 case TCONST: out_const(fp, &e->constblock); 00162 goto end_out; 00163 case TEXPR: 00164 break; 00165 00166 case TADDR: out_addr (fp, &(e -> addrblock)); 00167 goto end_out; 00168 00169 case TPRIM: if (!nerr) 00170 warn ("expr_out: got TPRIM"); 00171 output_prim (fp, &(e -> primblock)); 00172 return; 00173 00174 case TLIST: output_list (fp, &(e -> listblock)); 00175 end_out: frexpr(e); 00176 return; 00177 00178 case TIMPLDO: err ("expr_out: got TIMPLDO"); 00179 return; 00180 00181 case TERROR: 00182 default: 00183 erri ("expr_out: bad tag '%d'", e -> tag); 00184 } /* switch */ 00185 00186 /* Now we know that the tag is TEXPR */ 00187 00188 /* Optimize on simple expressions, such as "a = a + b" ==> "a += b" */ 00189 00190 if (e -> exprblock.opcode == OPASSIGN && e -> exprblock.rightp) 00191 switch(e->exprblock.rightp->tag) { 00192 case TEXPR: 00193 opcode = e -> exprblock.rightp -> exprblock.opcode; 00194 00195 if (opeqable[opcode]) { 00196 if ((leftp = e -> exprblock.leftp) && 00197 (rightp = e -> exprblock.rightp -> exprblock.leftp)) { 00198 00199 if (same_ident (leftp, rightp)) { 00200 expptr temp = e -> exprblock.rightp; 00201 00202 e -> exprblock.opcode = op_assign(opcode); 00203 00204 e -> exprblock.rightp = temp -> exprblock.rightp; 00205 temp->exprblock.rightp = 0; 00206 frexpr(temp); 00207 } /* if same_ident (leftp, rightp) */ 00208 } /* if leftp && rightp */ 00209 } /* if opcode == OPPLUS || */ 00210 break; 00211 00212 case TNAME: 00213 if (trapuv) { 00214 var = &e->exprblock.rightp->nameblock; 00215 if (ISREAL(var->vtype) 00216 && var->vclass == CLVAR 00217 && ONEOF(var->vstg, M(STGAUTO)|M(STGBSS)) 00218 && !var->vsave) { 00219 expr_out(fp, e -> exprblock.leftp); 00220 nice_printf(fp, " = _0 + "); 00221 expr_out(fp, e->exprblock.rightp); 00222 goto done; 00223 } 00224 } 00225 } /* if e -> exprblock.opcode == OPASSIGN */ 00226 00227 00228 /* Optimize on increment or decrement by 1 */ 00229 00230 { 00231 opcode = e -> exprblock.opcode; 00232 leftp = e -> exprblock.leftp; 00233 rightp = e -> exprblock.rightp; 00234 00235 if (leftp && rightp && (leftp -> headblock.vstg == STGARG || 00236 ISINT (leftp -> headblock.vtype)) && 00237 (opcode == OPPLUSEQ || opcode == OPMINUSEQ) && 00238 ISINT (rightp -> headblock.vtype) && 00239 ISICON (e -> exprblock.rightp) && 00240 (ISONE (e -> exprblock.rightp) || 00241 e -> exprblock.rightp -> constblock.Const.ci == -1)) { 00242 00243 /* Allow for the '-1' constant value */ 00244 00245 if (!ISONE (e -> exprblock.rightp)) 00246 opcode = (opcode == OPPLUSEQ) ? OPMINUSEQ : OPPLUSEQ; 00247 00248 /* replace the existing opcode */ 00249 00250 if (opcode == OPPLUSEQ) 00251 e -> exprblock.opcode = OPPREINC; 00252 else 00253 e -> exprblock.opcode = OPPREDEC; 00254 00255 /* Free up storage used by the right hand side */ 00256 00257 frexpr (e -> exprblock.rightp); 00258 e->exprblock.rightp = 0; 00259 } /* if opcode == OPPLUS */ 00260 } /* block */ 00261 00262 00263 if (is_unary_op (e -> exprblock.opcode)) 00264 output_unary (fp, &(e -> exprblock)); 00265 else if (is_binary_op (e -> exprblock.opcode)) 00266 output_binary (fp, &(e -> exprblock)); 00267 else 00268 erri ("expr_out: bad opcode '%d'", (int) e -> exprblock.opcode); 00269 00270 done: 00271 free((char *)e); 00272 00273 } /* expr_out */
Here is the call graph for this function:

Here is the caller graph for this function:

| void extern_out | ( | FILE * | fp, | |
| Extsym * | extsym | |||
| ) |
Definition at line 1483 of file output.c.
References Extsym::cextname, nice_printf(), and NULL.
Referenced by out_addr(), out_call(), out_name(), wr_abbrevs(), and wr_common_decls().
01485 { 01486 if (extsym == (Extsym *) NULL) 01487 return; 01488 01489 nice_printf (fp, "%s", extsym->cextname); 01490 01491 } /* extern_out */
Here is the call graph for this function:

Here is the caller graph for this function:

| static char* findconst | ( | register long | m | ) | [static] |
Definition at line 853 of file output.c.
References Literal::cds, Fatal(), Literal::litnum, litpool, and nliterals.
Referenced by opconv_fudge().
00855 { 00856 register struct Literal *litp, *litpe; 00857 00858 litp = litpool; 00859 for(litpe = litp + nliterals; litp < litpe; litp++) 00860 if (litp->litnum == m) 00861 return litp->cds[0]; 00862 Fatal("findconst failure!"); 00863 return 0; 00864 }
Here is the call graph for this function:

Here is the caller graph for this function:

| char* flconst | ( | char * | buf, | |
| char * | x | |||
| ) |
Definition at line 1400 of file output.c.
References fl_fmt_string.
Referenced by out_const().
01402 { 01403 sprintf(buf, fl_fmt_string, x); 01404 return buf; 01405 }
Here is the caller graph for this function:

Definition at line 872 of file output.c.
References badtag(), buf, c_type_decl(), chr_fmt, Addrblock::cmplx_sub, Nameblock::cvarname, expr_out(), fatali(), findconst(), halign, ICON, Addrblock::ident, ISCOMPLEX, Exprblock::leftp, lp, M, Addrblock::memoffset, mkexpr(), Addrblock::name, nice_printf(), Offset, ONEOF, Exprblock::opcode, OPMINUS, OPSTAR, OPWHATSIN, out_addr(), out_args(), out_name(), s, STGARG, STGCOMMON, STGCONST, STGEQUIV, STGMEMNO, STGUNKNOWN, TADDR, Nameblock::tag, TCONST, TEXPR, TNAME, TYCHAR, tyint, typesize, UNAM_IDENT, UNAM_NAME, UNAM_REF, Addrblock::uname_tag, Addrblock::user, Nameblock::voffset, Nameblock::vstg, and Exprblock::vtype.
Referenced by output_binary().
00874 { 00875 /* special handling for conversions, ichar and character*1 */ 00876 register expptr lp; 00877 register union Expression *Offset; 00878 register char *cp; 00879 int lt; 00880 char buf[8], *s; 00881 unsigned int k; 00882 Namep np; 00883 Addrp ap; 00884 00885 if (!(lp = e->leftp)) /* possible with erroneous Fortran */ 00886 return 1; 00887 lt = lp->headblock.vtype; 00888 if (lt == TYCHAR) { 00889 switch(lp->tag) { 00890 case TNAME: 00891 nice_printf(fp, "*(unsigned char *)"); 00892 out_name(fp, (Namep)lp); 00893 return 1; 00894 case TCONST: 00895 tconst: 00896 cp = lp->constblock.Const.ccp; 00897 tconst1: 00898 k = *(unsigned char *)cp; 00899 if (k < 128) { /* ASCII character */ 00900 sprintf(buf, chr_fmt[k], k); 00901 nice_printf(fp, "'%s'", buf); 00902 } 00903 else 00904 nice_printf(fp, "%d", k); 00905 return 1; 00906 case TADDR: 00907 switch(lp->addrblock.vstg) { 00908 case STGMEMNO: 00909 if (halign && e->vtype != TYCHAR) { 00910 nice_printf(fp, "*(%s *)", 00911 c_type_decl(e->vtype,0)); 00912 expr_out(fp, lp); 00913 return 1; 00914 } 00915 cp = findconst(lp->addrblock.memno); 00916 goto tconst1; 00917 case STGCONST: 00918 goto tconst; 00919 } 00920 lp->addrblock.vtype = tyint; 00921 Offset = lp->addrblock.memoffset; 00922 switch(lp->addrblock.uname_tag) { 00923 case UNAM_REF: 00924 nice_printf(fp, "*(unsigned char *)"); 00925 return 0; 00926 case UNAM_NAME: 00927 np = lp->addrblock.user.name; 00928 if (ONEOF(np->vstg, 00929 M(STGCOMMON)|M(STGEQUIV))) 00930 Offset = mkexpr(OPMINUS, Offset, 00931 ICON(np->voffset)); 00932 } 00933 lp->addrblock.memoffset = Offset ? 00934 mkexpr(OPSTAR, Offset, 00935 ICON(typesize[tyint])) 00936 : ICON(0); 00937 lp->addrblock.isarray = 1; 00938 /* STGCOMMON or STGEQUIV would cause */ 00939 /* voffset to be added in a second time */ 00940 lp->addrblock.vstg = STGUNKNOWN; 00941 nice_printf(fp, "*(unsigned char *)&"); 00942 return 0; 00943 default: 00944 badtag("opconv_fudge", lp->tag); 00945 } 00946 } 00947 if (lt != e->vtype) { 00948 s = c_type_decl(e->vtype, 0); 00949 if (ISCOMPLEX(lt)) { 00950 tryagain: 00951 np = (Namep)e->leftp; 00952 switch(np->tag) { 00953 case TNAME: 00954 nice_printf(fp, "(%s) %s%sr", s, 00955 np->cvarname, 00956 np->vstg == STGARG ? "->" : "."); 00957 return 1; 00958 case TADDR: 00959 ap = (Addrp)np; 00960 switch(ap->uname_tag) { 00961 case UNAM_IDENT: 00962 nice_printf(fp, "(%s) %s.r", s, 00963 ap->user.ident); 00964 return 1; 00965 case UNAM_NAME: 00966 nice_printf(fp, "(%s) ", s); 00967 out_addr(fp, ap); 00968 nice_printf(fp, ".r"); 00969 return 1; 00970 case UNAM_REF: 00971 nice_printf(fp, "(%s) %s_%s(", 00972 s, ap->user.name->cvarname, 00973 ap->cmplx_sub ? "subscr" : "ref"); 00974 out_args(fp, ap->memoffset); 00975 nice_printf(fp, ").r"); 00976 return 1; 00977 default: 00978 fatali( 00979 "Bad uname_tag %d in opconv_fudge", 00980 ap->uname_tag); 00981 } 00982 case TEXPR: 00983 e = (Exprp)np; 00984 if (e->opcode == OPWHATSIN) 00985 goto tryagain; 00986 default: 00987 fatali("Unexpected tag %d in opconv_fudge", 00988 np->tag); 00989 } 00990 } 00991 nice_printf(fp, "(%s) ", s); 00992 } 00993 return 0; 00994 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void out_addr | ( | FILE * | fp, | |
| struct Addrblock * | addrp | |||
| ) |
Definition at line 575 of file output.c.
References Addrblock::Charp, Constant::ci, CLPROC, Addrblock::cmplx_sub, Addrblock::Const, Constblock::Const, Expression::constblock, Nameblock::cvarname, doin_setbound, expr_out(), extern_out(), extsymtab, Fatal(), ICON, Addrblock::ident, is_left_assoc, Addrblock::isarray, ISICON, M, Addrblock::memoffset, mkexpr(), mkintcon(), multitype, Addrblock::name, nice_printf(), Addrblock::ntempelt, NULL, offset, ONEOF, oneof_stg(), op_precedence, OPMINUS, OPPLUS, OPSLASH, out_args(), out_const(), out_name(), output_literal(), PTHISPROC, s, Addrblock::skip_offset, STGARG, STGCOMMON, STGCONST, STGEQUIV, STGMEMNO, Expression::tag, TCONST, TEXPR, TYCHAR, typesize, UNAM_CHARP, UNAM_CONST, UNAM_EXTERN, UNAM_IDENT, UNAM_NAME, UNAM_REF, UNAM_UNKNOWN, Addrblock::uname_tag, Addrblock::user, Addrblock::vclass, Nameblock::vdim, Nameblock::vprocclass, Addrblock::vstg, Addrblock::vtype, and xretslot.
Referenced by expr_out(), opconv_fudge(), and wr_nv_ident_help().
00577 { 00578 extern Extsym *extsymtab; 00579 int was_array = 0; 00580 char *s; 00581 00582 00583 if (addrp == NULL) 00584 return; 00585 if (doin_setbound 00586 && addrp->vstg == STGARG 00587 && addrp->vtype != TYCHAR 00588 && ISICON(addrp->memoffset) 00589 && !addrp->memoffset->constblock.Const.ci) 00590 nice_printf(fp, "*"); 00591 00592 switch (addrp -> uname_tag) { 00593 case UNAM_REF: 00594 nice_printf(fp, "%s_%s(", addrp->user.name->cvarname, 00595 addrp->cmplx_sub ? "subscr" : "ref"); 00596 out_args(fp, addrp->memoffset); 00597 nice_printf(fp, ")"); 00598 return; 00599 case UNAM_NAME: 00600 out_name (fp, addrp -> user.name); 00601 break; 00602 case UNAM_IDENT: 00603 if (*(s = addrp->user.ident) == ' ') { 00604 if (multitype) 00605 nice_printf(fp, "%s", 00606 xretslot[addrp->vtype]->user.ident); 00607 else 00608 nice_printf(fp, "%s", s+1); 00609 } 00610 else { 00611 nice_printf(fp, "%s", s); 00612 } 00613 break; 00614 case UNAM_CHARP: 00615 nice_printf(fp, "%s", addrp->user.Charp); 00616 break; 00617 case UNAM_EXTERN: 00618 extern_out (fp, &extsymtab[addrp -> memno]); 00619 break; 00620 case UNAM_CONST: 00621 switch(addrp->vstg) { 00622 case STGCONST: 00623 out_const(fp, (Constp)addrp); 00624 break; 00625 case STGMEMNO: 00626 output_literal (fp, addrp->memno, 00627 (Constp)addrp); 00628 break; 00629 default: 00630 Fatal("unexpected vstg in out_addr"); 00631 } 00632 break; 00633 case UNAM_UNKNOWN: 00634 default: 00635 nice_printf (fp, "Unknown Addrp"); 00636 break; 00637 } /* switch */ 00638 00639 /* It's okay to just throw in the brackets here because they have a 00640 precedence level of 15, the highest value. */ 00641 00642 if ((addrp->uname_tag == UNAM_NAME && addrp->user.name->vdim 00643 || addrp->ntempelt > 1 || addrp->isarray) 00644 && addrp->vtype != TYCHAR) { 00645 expptr offset; 00646 00647 was_array = 1; 00648 00649 offset = addrp -> memoffset; 00650 addrp->memoffset = 0; 00651 if (ONEOF(addrp->vstg, M(STGCOMMON)|M(STGEQUIV)) 00652 && addrp -> uname_tag == UNAM_NAME 00653 && !addrp->skip_offset) 00654 offset = mkexpr (OPMINUS, offset, mkintcon ( 00655 addrp -> user.name -> voffset)); 00656 00657 nice_printf (fp, "["); 00658 00659 offset = mkexpr (OPSLASH, offset, 00660 ICON (typesize[addrp -> vtype] * (addrp -> Field ? 2 : 1))); 00661 expr_out (fp, offset); 00662 nice_printf (fp, "]"); 00663 } 00664 00665 /* Check for structure field reference */ 00666 00667 if (addrp -> Field && addrp -> uname_tag != UNAM_CONST && 00668 addrp -> uname_tag != UNAM_UNKNOWN) { 00669 if (oneof_stg((addrp -> uname_tag == UNAM_NAME ? addrp -> user.name : 00670 (Namep) NULL), addrp -> vstg, M(STGARG)|M(STGEQUIV)) 00671 && !was_array && (addrp->vclass != CLPROC || !multitype)) 00672 nice_printf (fp, "->%s", addrp -> Field); 00673 else 00674 nice_printf (fp, ".%s", addrp -> Field); 00675 } /* if */ 00676 00677 /* Check for character subscripting */ 00678 00679 if (addrp->vtype == TYCHAR && 00680 (addrp->vclass != CLPROC || addrp->uname_tag == UNAM_NAME 00681 && addrp->user.name->vprocclass == PTHISPROC) && 00682 addrp -> memoffset && 00683 (addrp -> uname_tag != UNAM_NAME || 00684 addrp -> user.name -> vtype == TYCHAR) && 00685 (!ISICON (addrp -> memoffset) || 00686 (addrp -> memoffset -> constblock.Const.ci))) { 00687 00688 int use_paren = 0; 00689 expptr e = addrp -> memoffset; 00690 00691 if (!e) 00692 return; 00693 addrp->memoffset = 0; 00694 00695 if (ONEOF(addrp->vstg, M(STGCOMMON)|M(STGEQUIV)) 00696 && addrp -> uname_tag == UNAM_NAME) { 00697 e = mkexpr (OPMINUS, e, mkintcon (addrp -> user.name -> voffset)); 00698 00699 /* mkexpr will simplify it to zero if possible */ 00700 if (e->tag == TCONST && e->constblock.Const.ci == 0) 00701 return; 00702 } /* if addrp -> vstg == STGCOMMON */ 00703 00704 /* In the worst case, parentheses might be needed OUTSIDE the expression, 00705 too. But since I think this subscripting can only appear as a 00706 parameter in a procedure call, I don't think outside parens will ever 00707 be needed. INSIDE parens are handled below */ 00708 00709 nice_printf (fp, " + "); 00710 if (e -> tag == TEXPR) { 00711 int arg_prec = op_precedence (e -> exprblock.opcode); 00712 int prec = op_precedence (OPPLUS); 00713 use_paren = arg_prec && (arg_prec < prec || (arg_prec == prec && 00714 is_left_assoc (OPPLUS))); 00715 } /* if e -> tag == TEXPR */ 00716 if (use_paren) nice_printf (fp, "("); 00717 expr_out (fp, e); 00718 if (use_paren) nice_printf (fp, ")"); 00719 } /* if */ 00720 } /* out_addr */
Here is the call graph for this function:

Here is the caller graph for this function:

| void out_and_free_statement | ( | FILE * | outfile, | |
| expptr | expr | |||
| ) |
Definition at line 282 of file output.c.
References expr(), expr_out(), and nice_printf().
Referenced by prolog(), and start_formatting().
00284 { 00285 if (expr) 00286 expr_out (outfile, expr); 00287 00288 nice_printf (outfile, ";\n"); 00289 } /* out_and_free_statement */
Here is the call graph for this function:

Here is the caller graph for this function:

| static void out_args | ( | FILE * | fp, | |
| expptr | ep | |||
| ) | [static] |
Definition at line 549 of file output.c.
References badtag(), Chain::datap, expr_out(), Expression::listblock, Listblock::listp, Chain::nextp, nice_printf(), Expression::tag, and TLIST.
Referenced by opconv_fudge(), and out_addr().
00551 { 00552 chainp arglist; 00553 00554 if(ep->tag != TLIST) 00555 badtag("out_args", ep->tag); 00556 for(arglist = ep->listblock.listp;;) { 00557 expr_out(fp, (expptr)arglist->datap); 00558 arglist->datap = 0; 00559 if (!(arglist = arglist->nextp)) 00560 break; 00561 nice_printf(fp, ", "); 00562 } 00563 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void out_asgoto | ( | FILE * | outfile, | |
| expptr | expr | |||
| ) |
Definition at line 1527 of file output.c.
References Ansi, Nameblock::assigned_values, err, expr(), expr_out(), next_tab, nice_printf(), NULL, OPWHATSIN, prev_tab, TADDR, TEXPR, TNAME, UNAM_NAME, user_label(), and value.
Referenced by do_p1_asgoto().
01529 { 01530 chainp value; 01531 Namep namep; 01532 int k; 01533 01534 if (expr == (expptr) NULL) { 01535 err ("out_asgoto: NULL variable expr"); 01536 return; 01537 } /* if expr */ 01538 01539 nice_printf (outfile, Ansi ? "switch (" : "switch ((int)"); /*)*/ 01540 expr_out (outfile, expr); 01541 nice_printf (outfile, ") {\n"); 01542 next_tab (outfile); 01543 01544 /* The initial addrp value will be stored as a namep pointer */ 01545 01546 switch(expr->tag) { 01547 case TNAME: 01548 /* local variable */ 01549 namep = &expr->nameblock; 01550 break; 01551 case TEXPR: 01552 if (expr->exprblock.opcode == OPWHATSIN 01553 && expr->exprblock.leftp->tag == TNAME) 01554 /* argument */ 01555 namep = &expr->exprblock.leftp->nameblock; 01556 else 01557 goto bad; 01558 break; 01559 case TADDR: 01560 if (expr->addrblock.uname_tag == UNAM_NAME) { 01561 /* initialized local variable */ 01562 namep = expr->addrblock.user.name; 01563 break; 01564 } 01565 default: 01566 bad: 01567 err("out_asgoto: bad expr"); 01568 return; 01569 } 01570 01571 for(k = 0, value = namep -> varxptr.assigned_values; value; 01572 value = value->nextp, k++) { 01573 nice_printf (outfile, "case %d: goto %s;\n", k, 01574 user_label((long)value->datap)); 01575 } /* for value */ 01576 prev_tab (outfile); 01577 01578 nice_printf (outfile, "}\n"); 01579 } /* out_asgoto */
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1135 of file output.c.
References A, Expression::addrblock, Ansi, Nameblock::arginfo, args, Argtypes::atypes, Addrblock::Charp, CHNULL, Constant::ci, Constblock::Const, Expression::constblock, Chain::datap, Argtypes::defined, err, expr_out(), Expression::exprblock, extern_out(), extsymtab, FALSE, forcereal, Expression::headblock, Addrblock::ident, Addrblock::isarray, ISCOMPLEX, ISICON, L, len, Expression::listblock, Listblock::listp, M, Addrblock::memno, Addrblock::memoffset, Addrblock::name, name, Argtypes::nargs, nice_printf(), NULL, ONEOF, OPCCALL, Exprblock::opcode, OPWHATSIN, out_name(), STGCOMMON, STGEQUIV, t, TADDR, Expression::tag, Nameblock::tag, TCONST, TEXPR, TNAME, TRUE, TYADDR, TYCHAR, TYERROR, Atype::type, Typename, TYREAL, TYSUBR, UNAM_CHARP, UNAM_EXTERN, UNAM_IDENT, UNAM_NAME, Addrblock::uname_tag, Addrblock::user, Nameblock::voffset, Addrblock::vstg, Headblock::vtype, and Addrblock::vtype.
Referenced by output_binary().
01137 { 01138 chainp arglist; /* Pointer to any actual arguments */ 01139 chainp cp; /* Iterator over argument lists */ 01140 Addrp ret_val = (Addrp) NULL; 01141 /* Function return value buffer, if any is 01142 required */ 01143 int byvalue; /* True iff we're calling a C library 01144 routine */ 01145 int done_once; /* Used for writing commas to outfile */ 01146 int narg, t; 01147 register expptr q; 01148 long L; 01149 Argtypes *at; 01150 Atype *A, *Ac; 01151 Namep np; 01152 extern int forcereal; 01153 01154 /* Don't use addresses if we're calling a C function */ 01155 01156 byvalue = op == OPCCALL; 01157 01158 if (args) 01159 arglist = args -> listblock.listp; 01160 else 01161 arglist = CHNULL; 01162 01163 /* If this is a CHARACTER function, the first argument is the result */ 01164 01165 if (ftype == TYCHAR) 01166 if (ISICON (len)) { 01167 ret_val = (Addrp) (arglist -> datap); 01168 arglist = arglist -> nextp; 01169 } else { 01170 err ("adjustable character function"); 01171 return; 01172 } /* else */ 01173 01174 /* If this is a COMPLEX function, the first argument is the result */ 01175 01176 else if (ISCOMPLEX (ftype)) { 01177 ret_val = (Addrp) (arglist -> datap); 01178 arglist = arglist -> nextp; 01179 } /* if ISCOMPLEX */ 01180 01181 /* prepare to cast procedure parameters -- set A if we know how */ 01182 np = name->tag == TEXPR && name->exprblock.opcode == OPWHATSIN 01183 ? (Namep)name->exprblock.leftp : (Namep)name; 01184 01185 A = Ac = 0; 01186 if (np->tag == TNAME && (at = np->arginfo)) { 01187 if (at->nargs > 0) 01188 A = at->atypes; 01189 if (Ansi && (at->defined || at->nargs > 0)) 01190 Ac = at->atypes; 01191 } 01192 01193 /* Now we can actually start to write out the function invocation */ 01194 01195 if (ftype == TYREAL && forcereal) 01196 nice_printf(outfile, "(real)"); 01197 if (name -> tag == TEXPR && name -> exprblock.opcode == OPWHATSIN) { 01198 nice_printf (outfile, "("); 01199 expr_out (outfile, name); 01200 nice_printf (outfile, ")"); 01201 } 01202 else 01203 expr_out(outfile, name); 01204 01205 nice_printf(outfile, "("); 01206 01207 if (ret_val) { 01208 if (ISCOMPLEX (ftype)) 01209 nice_printf (outfile, "&"); 01210 expr_out (outfile, (expptr) ret_val); 01211 if (Ac) 01212 Ac++; 01213 01214 /* The length of the result of a character function is the second argument */ 01215 /* It should be in place from putcall(), so we won't touch it explicitly */ 01216 01217 } /* if ret_val */ 01218 done_once = ret_val ? TRUE : FALSE; 01219 01220 /* Now run through the named arguments */ 01221 01222 narg = -1; 01223 for (cp = arglist; cp; cp = cp -> nextp, done_once = TRUE) { 01224 01225 if (done_once) 01226 nice_printf (outfile, ", "); 01227 narg++; 01228 01229 if (!( q = (expptr)cp->datap) ) 01230 continue; 01231 01232 if (q->tag == TADDR) { 01233 if (q->addrblock.vtype > TYERROR) { 01234 /* I/O block */ 01235 nice_printf(outfile, "&%s", q->addrblock.user.ident); 01236 continue; 01237 } 01238 if (!byvalue && q->addrblock.isarray 01239 && q->addrblock.vtype != TYCHAR 01240 && q->addrblock.memoffset->tag == TCONST) { 01241 01242 /* check for 0 offset -- after */ 01243 /* correcting for equivalence. */ 01244 L = q->addrblock.memoffset->constblock.Const.ci; 01245 if (ONEOF(q->addrblock.vstg, M(STGCOMMON)|M(STGEQUIV)) 01246 && q->addrblock.uname_tag == UNAM_NAME) 01247 L -= q->addrblock.user.name->voffset; 01248 if (L) 01249 goto skip_deref; 01250 01251 if (Ac && narg < at->dnargs 01252 && q->headblock.vtype != (t = Ac[narg].type) 01253 && t > TYADDR && t < TYSUBR) 01254 nice_printf(outfile, "(%s*)", Typename[t]); 01255 01256 /* &x[0] == x */ 01257 /* This also prevents &sizeof(doublereal)[0] */ 01258 01259 switch(q->addrblock.uname_tag) { 01260 case UNAM_NAME: 01261 out_name(outfile, q->addrblock.user.name); 01262 continue; 01263 case UNAM_IDENT: 01264 nice_printf(outfile, "%s", 01265 q->addrblock.user.ident); 01266 continue; 01267 case UNAM_CHARP: 01268 nice_printf(outfile, "%s", 01269 q->addrblock.user.Charp); 01270 continue; 01271 case UNAM_EXTERN: 01272 extern_out(outfile, 01273 &extsymtab[q->addrblock.memno]); 01274 continue; 01275 } 01276 } 01277 } 01278 01279 /* Skip over the dereferencing operator generated only for the 01280 intermediate file */ 01281 skip_deref: 01282 if (q -> tag == TEXPR && q -> exprblock.opcode == OPWHATSIN) 01283 q = q -> exprblock.leftp; 01284 01285 if (q->headblock.vclass == CLPROC) { 01286 if (Castargs && (q->tag != TNAME 01287 || q->nameblock.vprocclass != PTHISPROC) 01288 && (q->tag != TADDR 01289 || q->addrblock.uname_tag != UNAM_NAME 01290 || q->addrblock.user.name->vprocclass 01291 != PTHISPROC)) 01292 { 01293 if (A && (t = A[narg].type) >= 200) 01294 t %= 100; 01295 else { 01296 t = q->headblock.vtype; 01297 if (q->tag == TNAME && q->nameblock.vimpltype) 01298 t = TYUNKNOWN; 01299 } 01300 nice_printf(outfile, "(%s)", usedcasts[t] = casttypes[t]); 01301 } 01302 } 01303 else if (Ac && narg < at->dnargs 01304 && q->headblock.vtype != (t = Ac[narg].type) 01305 && t > TYADDR && t < TYSUBR) 01306 nice_printf(outfile, "(%s*)", Typename[t]); 01307 01308 if ((q -> tag == TADDR || q-> tag == TNAME) && 01309 (byvalue || q -> headblock.vstg != STGREG)) { 01310 if (q -> headblock.vtype != TYCHAR) 01311 if (byvalue) { 01312 01313 if (q -> tag == TADDR && 01314 q -> addrblock.uname_tag == UNAM_NAME && 01315 ! q -> addrblock.user.name -> vdim && 01316 oneof_stg(q -> addrblock.user.name, q -> addrblock.vstg, 01317 M(STGARG)|M(STGEQUIV)) && 01318 ! ISCOMPLEX(q->addrblock.user.name->vtype)) 01319 nice_printf (outfile, "*"); 01320 else if (q -> tag == TNAME 01321 && oneof_stg(&q->nameblock, q -> nameblock.vstg, 01322 M(STGARG)|M(STGEQUIV)) 01323 && !(q -> nameblock.vdim)) 01324 nice_printf (outfile, "*"); 01325 01326 } else { 01327 expptr memoffset; 01328 01329 if (q->tag == TADDR && ( 01330 !ONEOF (q -> addrblock.vstg, M(STGEXT)|M(STGLENG)) 01331 && (ONEOF(q->addrblock.vstg, 01332 M(STGCOMMON)|M(STGEQUIV)|M(STGMEMNO)) 01333 || ((memoffset = q->addrblock.memoffset) 01334 && (!ISICON(memoffset) 01335 || memoffset->constblock.Const.ci))) 01336 || ONEOF(q->addrblock.vstg, 01337 M(STGINIT)|M(STGAUTO)|M(STGBSS)) 01338 && !q->addrblock.isarray)) 01339 nice_printf (outfile, "&"); 01340 else if (q -> tag == TNAME 01341 && !oneof_stg(&q->nameblock, q -> nameblock.vstg, 01342 M(STGARG)|M(STGEXT)|M(STGEQUIV))) 01343 nice_printf (outfile, "&"); 01344 } /* else */ 01345 01346 expr_out (outfile, q); 01347 } /* if q -> tag == TADDR || q -> tag == TNAME */ 01348 01349 /* Might be a Constant expression, e.g. string length, character constants */ 01350 01351 else if (q -> tag == TCONST) { 01352 if (q->constblock.vtype == TYLONG) 01353 nice_printf(outfile, "(ftnlen)%ld", 01354 q->constblock.Const.ci); 01355 else 01356 out_const(outfile, &q->constblock); 01357 } 01358 01359 /* Must be some other kind of expression, or register var, or constant. 01360 In particular, this is likely to be a temporary variable assignment 01361 which was generated in p1put_call */ 01362 01363 else if (!ISCOMPLEX (q -> headblock.vtype) && !ISCHAR (q)){ 01364 int use_paren = q -> tag == TEXPR && 01365 op_precedence (q -> exprblock.opcode) <= 01366 op_precedence (OPCOMMA); 01367 if (q->headblock.vtype == TYREAL) { 01368 if (forcereal) { 01369 nice_printf(outfile, "(real)"); 01370 use_paren = 1; 01371 } 01372 } 01373 else if (!Ansi && ISINT(q->headblock.vtype)) { 01374 nice_printf(outfile, "(ftnlen)"); 01375 use_paren = 1; 01376 } 01377 if (use_paren) nice_printf (outfile, "("); 01378 expr_out (outfile, q); 01379 if (use_paren) nice_printf (outfile, ")"); 01380 } /* if !ISCOMPLEX */ 01381 else 01382 err ("out_call: unknown parameter"); 01383 01384 } /* for (cp = arglist */ 01385 01386 if (arglist) 01387 frchain (&arglist); 01388 01389 nice_printf (outfile, ")"); 01390 01391 } /* out_call */
Here is the call graph for this function:

Here is the caller graph for this function:

| void out_const | ( | FILE * | fp, | |
| register Constp | cp | |||
| ) |
Definition at line 471 of file output.c.
References cm_fmt_string, cpd, dcm_fmt_string, erri(), flconst(), j, nice_printf(), NULL, str_fmt, TYCHAR, TYCOMPLEX, TYDCOMPLEX, TYDREAL, TYINT1, TYLOGICAL, TYLOGICAL1, TYLOGICAL2, TYLONG, type, TYQUAD, TYREAL, and TYSHORT.
Referenced by expr_out(), out_addr(), output_literal(), wr_array_init(), wr_globals(), and wr_output_values().
00473 { 00474 static char real_buf[50], imag_buf[50]; 00475 ftnint j; 00476 unsigned int k; 00477 int type = cp->vtype; 00478 00479 switch (type) { 00480 case TYINT1: 00481 case TYSHORT: 00482 nice_printf (fp, "%ld", cp->Const.ci); /* don't cast ci! */ 00483 break; 00484 case TYLONG: 00485 #ifdef TYQUAD0 00486 case TYQUAD: 00487 #endif 00488 nice_printf (fp, "%ld", cp->Const.ci); /* don't cast ci! */ 00489 break; 00490 #ifndef NO_LONG_LONG 00491 case TYQUAD: 00492 if (cp->Const.cd[1] == 123.456) 00493 nice_printf (fp, "%s", cp->Const.cds[0]); 00494 else 00495 nice_printf (fp, "%lld", cp->Const.cq); 00496 break; 00497 #endif 00498 case TYREAL: 00499 nice_printf(fp, "%s", flconst(real_buf, cpd(0))); 00500 break; 00501 case TYDREAL: 00502 nice_printf(fp, "%s", cpd(0)); 00503 break; 00504 case TYCOMPLEX: 00505 nice_printf(fp, cm_fmt_string, flconst(real_buf, cpd(0)), 00506 flconst(imag_buf, cpd(1))); 00507 break; 00508 case TYDCOMPLEX: 00509 nice_printf(fp, dcm_fmt_string, cpd(0), cpd(1)); 00510 break; 00511 case TYLOGICAL1: 00512 case TYLOGICAL2: 00513 case TYLOGICAL: 00514 nice_printf (fp, "%s", cp->Const.ci ? "TRUE_" : "FALSE_"); 00515 break; 00516 case TYCHAR: { 00517 char *c = cp->Const.ccp, *ce; 00518 00519 if (c == NULL) { 00520 nice_printf (fp, "\"\""); 00521 break; 00522 } /* if c == NULL */ 00523 00524 nice_printf (fp, "\""); 00525 ce = c + cp->vleng->constblock.Const.ci; 00526 while(c < ce) { 00527 k = *(unsigned char *)c++; 00528 nice_printf(fp, str_fmt[k]); 00529 } 00530 for(j = cp->Const.ccp1.blanks; j > 0; j--) 00531 nice_printf(fp, " "); 00532 nice_printf (fp, "\""); 00533 break; 00534 } /* case TYCHAR */ 00535 default: 00536 erri ("out_const: bad type '%d'", (int) type); 00537 break; 00538 } /* switch */ 00539 00540 } /* out_const */
Here is the call graph for this function:

Here is the caller graph for this function:

| void out_else | ( | FILE * | outfile | ) |
Definition at line 1622 of file output.c.
References next_tab, output_rbrace(), and prev_tab.
Referenced by do_p1_else().
01624 { 01625 prev_tab (outfile); 01626 output_rbrace(outfile, "} else {\n"); 01627 next_tab (outfile); 01628 } /* out_else */
Here is the call graph for this function:

Here is the caller graph for this function:

| void out_end_for | ( | FILE * | outfile | ) |
Definition at line 1748 of file output.c.
References nice_printf(), and prev_tab.
Referenced by do_p1_end_for().
01750 { 01751 prev_tab (outfile); 01752 nice_printf (outfile, "}\n"); 01753 } /* out_end_for */
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1729 of file output.c.
References expr_out(), init, next_tab, nice_printf(), and test.
Referenced by do_p1_for().
01731 { 01732 nice_printf (outfile, "for ("); 01733 expr_out (outfile, init); 01734 nice_printf (outfile, "; "); 01735 expr_out (outfile, test); 01736 nice_printf (outfile, "; "); 01737 expr_out (outfile, inc); 01738 nice_printf (outfile, ") {\n"); 01739 next_tab (outfile); 01740 } /* out_for */
Here is the call graph for this function:

Here is the caller graph for this function:

| void out_if | ( | FILE * | outfile, | |
| expptr | expr | |||
| ) |
Definition at line 1587 of file output.c.
References expr(), expr_out(), next_tab, and nice_printf().
Referenced by do_p1_if(), and elif_out().
01589 { 01590 nice_printf (outfile, "if ("); 01591 expr_out (outfile, expr); 01592 nice_printf (outfile, ") {\n"); 01593 next_tab (outfile); 01594 } /* out_if */
Here is the call graph for this function:

Here is the caller graph for this function:

| void out_init | ( | Void | ) |
Definition at line 1431 of file output.c.
References Ansi, cm_fmt_string, db_fmt_string, dcm_fmt_string, fl_fmt_string, NULL, OPBITAND, OPBITOR, OPBITXOR, opeqable, OPLSHIFT, OPMINUS, OPMOD, OPPLUS, OPSLASH, OPSTAR, s, and tab_size.
Referenced by fileinit().
01432 { 01433 extern int tab_size; 01434 register char *s; 01435 01436 s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_+-."; 01437 while(*s) 01438 tr_tab[*s++] = 3; 01439 tr_tab['>'] = 1; 01440 01441 opeqable[OPPLUS] = 1; 01442 opeqable[OPMINUS] = 1; 01443 opeqable[OPSTAR] = 1; 01444 opeqable[OPSLASH] = 1; 01445 opeqable[OPMOD] = 1; 01446 opeqable[OPLSHIFT] = 1; 01447 opeqable[OPBITAND] = 1; 01448 opeqable[OPBITXOR] = 1; 01449 opeqable[OPBITOR ] = 1; 01450 01451 01452 /* Set the output format for both types of floating point constants */ 01453 01454 if (fl_fmt_string == NULL || *fl_fmt_string == '\0') 01455 fl_fmt_string = (char*)(Ansi == 1 ? "%sf" : "(float)%s"); 01456 01457 if (db_fmt_string == NULL || *db_fmt_string == '\0') 01458 db_fmt_string = "%.17g"; 01459 01460 /* Set the output format for both types of complex constants. They will 01461 have string parameters rather than float or double so that the decimal 01462 point may be added to the strings generated by the {db,fl}_fmt_string 01463 formats above */ 01464 01465 if (cm_fmt_string == NULL || *cm_fmt_string == '\0') { 01466 cm_fmt_string = "{%s,%s}"; 01467 } /* if cm_fmt_string == NULL */ 01468 01469 if (dcm_fmt_string == NULL || *dcm_fmt_string == '\0') { 01470 dcm_fmt_string = "{%s,%s}"; 01471 } /* if dcm_fmt_string == NULL */ 01472 01473 tab_size = 4; 01474 } /* out_init */
Here is the caller graph for this function:

| void out_name | ( | FILE * | fp, | |
| Namep | namep | |||
| ) |
Definition at line 438 of file output.c.
References Extsym::curno, Nameblock::cvarname, extern_out(), extsymtab, Addrblock::ident, nice_printf(), NULL, PTHISPROC, STGCOMMON, TYSUBR, usedefsforcommon, Addrblock::user, Nameblock::vardesc, Nameblock::varno, Nameblock::vcommequiv, Nameblock::vprocclass, Nameblock::vstg, Nameblock::vtype, and xretslot.
Referenced by expr_out(), list_arg_types(), listargs(), opconv_fudge(), out_addr(), out_call(), output_prim(), ref_defs(), wr_abbrevs(), wr_struct(), and write_namelists().
00440 { 00441 extern int usedefsforcommon; 00442 Extsym *comm; 00443 00444 if (namep == NULL) 00445 return; 00446 00447 /* DON'T want to use oneof_stg() here; need to find the right common name 00448 */ 00449 00450 if (namep->vstg == STGCOMMON && !namep->vcommequiv && !usedefsforcommon) { 00451 comm = &extsymtab[namep->vardesc.varno]; 00452 extern_out(fp, comm); 00453 nice_printf(fp, "%d.", comm->curno); 00454 } /* if namep -> vstg == STGCOMMON */ 00455 00456 if (namep->vprocclass == PTHISPROC && namep->vtype != TYSUBR) 00457 nice_printf(fp, xretslot[namep->vtype]->user.ident); 00458 else 00459 nice_printf (fp, "%s", namep->cvarname); 00460 } /* out_name */
Here is the call graph for this function:

Here is the caller graph for this function:

| static void output_arg_list | ( | FILE * | fp, | |
| struct Listblock * | listp | |||
| ) | [static] |
Definition at line 779 of file output.c.
References expr_out(), nice_printf(), and NULL.
Referenced by output_prim().
00781 { 00782 chainp arg_list; 00783 00784 if (listp == (struct Listblock *) NULL || listp -> listp == (chainp) NULL) 00785 return; 00786 00787 nice_printf (fp, "("); 00788 00789 for (arg_list = listp -> listp; arg_list; arg_list = arg_list -> nextp) { 00790 expr_out (fp, (expptr) arg_list -> datap); 00791 if (arg_list -> nextp != (chainp) NULL) 00792 00793 /* Might want to add a hook in here to accomodate the style setting which 00794 wants spaces after commas */ 00795 00796 nice_printf (fp, ","); 00797 } /* for arg_list */ 00798 00799 nice_printf (fp, ")"); 00800 } /* output_arg_list */
Here is the call graph for this function:

Here is the caller graph for this function:

| static void output_binary | ( | FILE * | fp, | |
| struct Exprblock * | e | |||
| ) | [static] |
Definition at line 1003 of file output.c.
References Expression::constblock, doin_setbound, erri(), expr_out(), Expression::exprblock, is_left_assoc, is_negatable(), is_right_assoc, isnegative_const(), Exprblock::leftp, lp, negate_const(), nice_printf(), NULL, op_format, op_precedence, OPADDR, OPCALL, OPCCALL, Exprblock::opcode, OPCOMMA_ARG, OPCONV, opconv_fudge(), OPMINUS, OPNEG, OPPLUS, out_call(), Exprblock::rightp, SPECIAL_FMT, Expression::tag, TCONST, and TEXPR.
Referenced by expr_out(), and output_unary().
01005 { 01006 char *format; 01007 int prec; 01008 01009 if (e == NULL || e -> tag != TEXPR) 01010 return; 01011 01012 /* Instead of writing a huge switch, I've incorporated the output format 01013 into a table. Things like "%l" and "%r" stand for the left and 01014 right subexpressions. This should allow both prefix and infix 01015 functions to be specified (e.g. "(%l * %r", "z_div (%l, %r"). Of 01016 course, I should REALLY think out the ramifications of writing out 01017 straight text, as opposed to some intermediate format, which could 01018 figure out and optimize on the the number of required blanks (we don't 01019 want "x - (-y)" to become "x --y", for example). Special cases (such as 01020 incomplete implementations) could still be implemented as part of the 01021 switch, they will just have some dummy value instead of the string 01022 pattern. Another difficulty is the fact that the complex functions 01023 will differ from the integer and real ones */ 01024 01025 /* Handle a special case. We don't want to output "x + - 4", or "y - - 3" 01026 */ 01027 if ((e -> opcode == OPPLUS || e -> opcode == OPMINUS) && 01028 e -> rightp && e -> rightp -> tag == TCONST && 01029 isnegative_const (&(e -> rightp -> constblock)) && 01030 is_negatable (&(e -> rightp -> constblock))) { 01031 01032 e -> opcode = (e -> opcode == OPPLUS) ? OPMINUS : OPPLUS; 01033 negate_const (&(e -> rightp -> constblock)); 01034 } /* if e -> opcode == PLUS or MINUS */ 01035 01036 prec = op_precedence (e -> opcode); 01037 format = op_format (e -> opcode); 01038 01039 if (format != SPECIAL_FMT) { 01040 while (*format) { 01041 if (*format == '%') { 01042 int arg_prec, use_paren = 0; 01043 expptr lp, rp; 01044 01045 switch (*(format + 1)) { 01046 case 'l': 01047 lp = e->leftp; 01048 if (lp && lp->tag == TEXPR) { 01049 arg_prec = op_precedence(lp->exprblock.opcode); 01050 01051 use_paren = arg_prec && 01052 (arg_prec < prec || (arg_prec == prec && 01053 is_right_assoc (prec))); 01054 } /* if e -> leftp */ 01055 if (e->opcode == OPCONV && opconv_fudge(fp,e)) 01056 break; 01057 if (use_paren) 01058 nice_printf (fp, "("); 01059 expr_out(fp, lp); 01060 if (use_paren) 01061 nice_printf (fp, ")"); 01062 break; 01063 case 'r': 01064 rp = e->rightp; 01065 if (rp && rp->tag == TEXPR) { 01066 arg_prec = op_precedence(rp->exprblock.opcode); 01067 01068 use_paren = arg_prec && 01069 (arg_prec < prec || (arg_prec == prec && 01070 is_left_assoc (prec))); 01071 use_paren = use_paren || 01072 (rp->exprblock.opcode == OPNEG 01073 && prec >= op_precedence(OPMINUS)); 01074 } /* if e -> rightp */ 01075 if (use_paren) 01076 nice_printf (fp, "("); 01077 expr_out(fp, rp); 01078 if (use_paren) 01079 nice_printf (fp, ")"); 01080 break; 01081 case '\0': 01082 case '%': 01083 nice_printf (fp, "%%"); 01084 break; 01085 default: 01086 erri ("output_binary: format err: '%%%c' illegal", 01087 (int) *(format + 1)); 01088 break; 01089 } /* switch */ 01090 format += 2; 01091 } else 01092 nice_printf (fp, "%c", *format++); 01093 } /* while *format */ 01094 } else { 01095 01096 /* Handle Special cases of formatting */ 01097 01098 switch (e -> opcode) { 01099 case OPCCALL: 01100 case OPCALL: 01101 out_call (fp, (int) e -> opcode, e -> vtype, 01102 e -> vleng, e -> leftp, e -> rightp); 01103 break; 01104 01105 case OPCOMMA_ARG: 01106 doin_setbound = 1; 01107 nice_printf(fp, "("); 01108 expr_out(fp, e->leftp); 01109 nice_printf(fp, ", &"); 01110 doin_setbound = 0; 01111 expr_out(fp, e->rightp); 01112 nice_printf(fp, ")"); 01113 break; 01114 01115 case OPADDR: 01116 default: 01117 nice_printf (fp, "Sorry, can't format OPCODE '%d'", 01118 e -> opcode); 01119 break; 01120 } 01121 01122 } /* else */ 01123 } /* output_binary */
Here is the call graph for this function:

Here is the caller graph for this function:

| static void output_list | ( | FILE * | fp, | |
| struct Listblock * | listp | |||
| ) | [static] |
Definition at line 1501 of file output.c.
References expr_out(), and nice_printf().
Referenced by expr_out().
01503 { 01504 int did_one = 0; 01505 chainp elts; 01506 01507 nice_printf (fp, "("); 01508 if (listp) 01509 for (elts = listp -> listp; elts; elts = elts -> nextp) { 01510 if (elts -> datap) { 01511 if (did_one) 01512 nice_printf (fp, ", "); 01513 expr_out (fp, (expptr) elts -> datap); 01514 did_one = 1; 01515 } /* if elts -> datap */ 01516 } /* for elts */ 01517 nice_printf (fp, ")"); 01518 } /* output_list */
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 730 of file output.c.
References lit_name(), Literal::litnum, litpool, nice_printf(), nliterals, and out_const().
Referenced by out_addr().
00732 { 00733 struct Literal *litp, *lastlit; 00734 00735 lastlit = litpool + nliterals; 00736 00737 for (litp = litpool; litp < lastlit; litp++) { 00738 if (litp -> litnum == memno) 00739 break; 00740 } /* for litp */ 00741 00742 if (litp >= lastlit) 00743 out_const (fp, cp); 00744 else { 00745 nice_printf (fp, "%s", lit_name (litp)); 00746 litp->lituse++; 00747 } 00748 } /* output_literal */
Here is the call graph for this function:

Here is the caller graph for this function:

| static void output_prim | ( | FILE * | fp, | |
| struct Primblock * | primp | |||
| ) | [static] |
Definition at line 757 of file output.c.
References nice_printf(), NULL, out_name(), and output_arg_list().
Referenced by expr_out().
00759 { 00760 if (primp == NULL) 00761 return; 00762 00763 out_name (fp, primp -> namep); 00764 if (primp -> argsp) 00765 output_arg_list (fp, primp -> argsp); 00766 00767 if (primp -> fcharp != (expptr) NULL || primp -> lcharp != (expptr) NULL) 00768 nice_printf (fp, "Sorry, no substrings yet"); 00769 }
Here is the call graph for this function:

Here is the caller graph for this function:

| static void output_rbrace | ( | FILE * | outfile, | |
| char * | s | |||
| ) | [static] |
Definition at line 1602 of file output.c.
References fmt, last_was_label, and nice_printf().
Referenced by elif_out(), end_else_out(), endif_out(), and out_else().
01604 { 01605 extern int last_was_label; 01606 register char *fmt; 01607 01608 if (last_was_label) { 01609 last_was_label = 0; 01610 fmt = ";%s"; 01611 } 01612 else 01613 fmt = "%s"; 01614 nice_printf(outfile, fmt, s); 01615 }
Here is the call graph for this function:

Here is the caller graph for this function:

| static void output_unary | ( | FILE * | fp, | |
| struct Exprblock * | e | |||
| ) | [static] |
Definition at line 810 of file output.c.
References dneg, erri(), nice_printf(), NULL, OPABS, OPADDR, OPBITNOT, OPCALL, OPCCALL, OPCHARCAST, Exprblock::opcode, OPDABS, OPIDENTITY, OPNEG, OPNEG1, OPNEG_KLUDGE, OPNOT, OPPREDEC, OPPREINC, OPWHATSIN, output_binary(), TYREAL, and Exprblock::vtype.
Referenced by expr_out().
00812 { 00813 if (e == NULL) 00814 return; 00815 00816 switch (e -> opcode) { 00817 case OPNEG: 00818 if (e->vtype == TYREAL && dneg) { 00819 e->opcode = OPNEG_KLUDGE; 00820 output_binary(fp,e); 00821 e->opcode = OPNEG; 00822 break; 00823 } 00824 case OPNEG1: 00825 case OPNOT: 00826 case OPABS: 00827 case OPBITNOT: 00828 case OPWHATSIN: 00829 case OPPREINC: 00830 case OPPREDEC: 00831 case OPADDR: 00832 case OPIDENTITY: 00833 case OPCHARCAST: 00834 case OPDABS: 00835 output_binary (fp, e); 00836 break; 00837 case OPCALL: 00838 case OPCCALL: 00839 nice_printf (fp, "Sorry, no OPCALL yet"); 00840 break; 00841 default: 00842 erri ("output_unary: bad opcode", (int) e -> opcode); 00843 break; 00844 } /* switch */ 00845 } /* output_unary */
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 404 of file output.c.
References Expression::constblock, same_ident(), sameconst(), TADDR, TCONST, TEXPR, and TNAME.
Referenced by same_ident().
00406 { 00407 if (!e1 || !e2) 00408 return !e1 && !e2; 00409 00410 if (e1 -> tag != e2 -> tag || e1 -> headblock.vtype != e2 -> headblock.vtype) 00411 return 0; 00412 00413 switch (e1 -> tag) { 00414 case TEXPR: 00415 if (e1 -> exprblock.opcode != e2 -> exprblock.opcode) 00416 return 0; 00417 00418 return same_expr (e1 -> exprblock.leftp, e2 -> exprblock.leftp) && 00419 same_expr (e1 -> exprblock.rightp, e2 -> exprblock.rightp); 00420 case TNAME: 00421 case TADDR: 00422 return same_ident (e1, e2); 00423 case TCONST: 00424 return sameconst(&e1->constblock, &e2->constblock); 00425 default: 00426 return 0; 00427 } /* switch */ 00428 } /* same_expr */
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 299 of file output.c.
References left, OPWHATSIN, right, same_expr(), TADDR, TEXPR, TNAME, UNAM_CHARP, UNAM_IDENT, UNAM_NAME, and UNAM_REF.
Referenced by expr_out(), and same_expr().
00301 { 00302 if (!left || !right) 00303 return 0; 00304 00305 if (left -> tag == TNAME && right -> tag == TNAME && left == right) 00306 return 1; 00307 00308 if (left -> tag == TADDR && right -> tag == TADDR && 00309 left -> addrblock.uname_tag == right -> addrblock.uname_tag) 00310 switch (left -> addrblock.uname_tag) { 00311 case UNAM_REF: 00312 case UNAM_NAME: 00313 00314 /* Check for array subscripts */ 00315 00316 if (left -> addrblock.user.name -> vdim || 00317 right -> addrblock.user.name -> vdim) 00318 if (left -> addrblock.user.name != 00319 right -> addrblock.user.name || 00320 !same_expr (left -> addrblock.memoffset, 00321 right -> addrblock.memoffset)) 00322 return 0; 00323 00324 return same_ident ((expptr) (left -> addrblock.user.name), 00325 (expptr) right -> addrblock.user.name); 00326 case UNAM_IDENT: 00327 return strcmp(left->addrblock.user.ident, 00328 right->addrblock.user.ident) == 0; 00329 case UNAM_CHARP: 00330 return strcmp(left->addrblock.user.Charp, 00331 right->addrblock.user.Charp) == 0; 00332 default: 00333 return 0; 00334 } /* switch */ 00335 00336 if (left->tag == TEXPR && left->exprblock.opcode == OPWHATSIN 00337 && right->tag == TEXPR && right->exprblock.opcode == OPWHATSIN) 00338 return same_ident(left->exprblock.leftp, 00339 right->exprblock.leftp); 00340 00341 return 0; 00342 } /* same_ident */
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 368 of file output.c.
References err, memcmp(), samefpconst(), TYCHAR, TYCOMPLEX, TYDCOMPLEX, TYDREAL, TYINT, TYLOGICAL, TYREAL, and TYSHORT.
Referenced by same_expr().
00370 { 00371 switch(c1->vtype) { 00372 case TYCOMPLEX: 00373 case TYDCOMPLEX: 00374 if (!samefpconst(c1,c2,1)) 00375 return 0; 00376 case TYREAL: 00377 case TYDREAL: 00378 return samefpconst(c1,c2,0); 00379 case TYCHAR: 00380 return c1->Const.ccp1.blanks == c2->Const.ccp1.blanks 00381 && c1->vleng->constblock.Const.ci 00382 == c2->vleng->constblock.Const.ci 00383 && !memcmp(c1->Const.ccp, c2->Const.ccp, 00384 (int)c1->vleng->constblock.Const.ci); 00385 case TYSHORT: 00386 case TYINT: 00387 case TYLOGICAL: 00388 return c1->Const.ci == c2->Const.ci; 00389 } 00390 err("unexpected type in sameconst"); 00391 return 0; 00392 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 351 of file output.c.
References dtos(), s1, and s2.
Referenced by sameconst().
00353 { 00354 char *s1, *s2; 00355 if (!c1->vstg && !c2->vstg) 00356 return c1->Const.cd[n] == c2->Const.cd[n]; 00357 s1 = c1->vstg ? c1->Const.cds[n] : dtos(c1->Const.cd[n]); 00358 s2 = c2->vstg ? c2->Const.cds[n] : dtos(c2->Const.cd[n]); 00359 return !strcmp(s1, s2); 00360 }
Here is the call graph for this function:

Here is the caller graph for this function:

| char _assoc_table[] = { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } |
char opeqable[sizeof(opcode_table)/sizeof(table_entry)] [static] |
| char tr_tab[Table_size] |
1.5.1