qtbindings 4.8.6.2 → 4.8.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/COPYING.LIB.txt +510 -510
- data/COPYING.txt +286 -286
- data/KNOWN_ISSUES.txt +17 -17
- data/Rakefile +5 -5
- data/bin/rbqtapi +0 -0
- data/bin/rbrcc +0 -0
- data/bin/rbuic4 +0 -0
- data/bin/smokeapi +0 -0
- data/bin/smokedeptool +0 -0
- data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -5
- data/examples/designer/calculatorbuilder/calculatorform.rb +60 -60
- data/examples/designer/calculatorbuilder/calculatorform.ui +299 -299
- data/examples/designer/calculatorbuilder/main.rb +34 -34
- data/examples/designer/calculatorbuilder/makefile +2 -2
- data/examples/designer/calculatorform/calculatorform.rb +46 -46
- data/examples/designer/calculatorform/calculatorform.ui +277 -277
- data/examples/designer/calculatorform/main.rb +32 -32
- data/examples/designer/calculatorform/makefile +3 -3
- data/examples/desktop/screenshot/main.rb +32 -32
- data/examples/desktop/screenshot/screenshot.rb +157 -157
- data/examples/desktop/systray/images/bad.svg +64 -64
- data/examples/desktop/systray/images/heart.svg +55 -55
- data/examples/desktop/systray/images/trash.svg +58 -58
- data/examples/desktop/systray/main.rb +41 -41
- data/examples/desktop/systray/makefile +2 -2
- data/examples/desktop/systray/systray.qrc +7 -7
- data/examples/desktop/systray/window.rb +219 -219
- data/examples/dialogs/complexwizard/complexwizard.rb +140 -140
- data/examples/dialogs/complexwizard/licensewizard.rb +294 -294
- data/examples/dialogs/complexwizard/main.rb +31 -31
- data/examples/dialogs/configdialog/configdialog.rb +109 -109
- data/examples/dialogs/configdialog/main.rb +31 -31
- data/examples/dialogs/configdialog/pages.rb +140 -140
- data/examples/dialogs/extension/finddialog.rb +89 -89
- data/examples/dialogs/extension/main.rb +31 -31
- data/examples/dialogs/findfiles/main.rb +32 -32
- data/examples/dialogs/findfiles/window.rb +177 -177
- data/examples/dialogs/simplewizard/classwizard.rb +374 -374
- data/examples/dialogs/simplewizard/main.rb +31 -31
- data/examples/dialogs/simplewizard/simplewizard.rb +110 -110
- data/examples/dialogs/standarddialogs/dialog.rb +340 -340
- data/examples/dialogs/standarddialogs/main.rb +31 -31
- data/examples/dialogs/tabdialog/main.rb +38 -38
- data/examples/dialogs/tabdialog/tabdialog.rb +178 -178
- data/examples/draganddrop/draggableicons/dragwidget.rb +125 -125
- data/examples/draganddrop/draggableicons/main.rb +41 -41
- data/examples/draganddrop/draggabletext/draglabel.rb +51 -51
- data/examples/draganddrop/draggabletext/dragwidget.rb +94 -94
- data/examples/draganddrop/draggabletext/main.rb +33 -33
- data/examples/draganddrop/draggabletext/words.txt +41 -41
- data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -99
- data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -114
- data/examples/draganddrop/dropsite/main.rb +33 -33
- data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -78
- data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -130
- data/examples/draganddrop/fridgemagnets/main.rb +33 -33
- data/examples/draganddrop/fridgemagnets/words.txt +48 -48
- data/examples/draganddrop/puzzle/main.rb +33 -33
- data/examples/draganddrop/puzzle/mainwindow.rb +136 -136
- data/examples/draganddrop/puzzle/pieceslist.rb +95 -95
- data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -190
- data/examples/graphicsview/collidingmice/main.rb +53 -53
- data/examples/graphicsview/collidingmice/makefile +2 -2
- data/examples/graphicsview/collidingmice/mice.qrc +5 -5
- data/examples/graphicsview/collidingmice/mouse.rb +176 -176
- data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -86
- data/examples/graphicsview/dragdroprobot/main.rb +57 -57
- data/examples/graphicsview/dragdroprobot/makefile +2 -2
- data/examples/graphicsview/dragdroprobot/robot.qrc +5 -5
- data/examples/graphicsview/dragdroprobot/robot.rb +246 -246
- data/examples/itemviews/chart/chart.qrc +5 -5
- data/examples/itemviews/chart/main.rb +33 -33
- data/examples/itemviews/chart/mainwindow.rb +151 -151
- data/examples/itemviews/chart/makefile +2 -2
- data/examples/itemviews/chart/mydata.cht +8 -8
- data/examples/itemviews/chart/pieview.rb +516 -516
- data/examples/itemviews/chart/qtdata.cht +14 -14
- data/examples/itemviews/dirview/main.rb +39 -39
- data/examples/itemviews/pixelator/imagemodel.rb +51 -51
- data/examples/itemviews/pixelator/images.qrc +5 -5
- data/examples/itemviews/pixelator/main.rb +34 -34
- data/examples/itemviews/pixelator/mainwindow.rb +218 -218
- data/examples/itemviews/pixelator/makefile +3 -3
- data/examples/itemviews/pixelator/pixeldelegate.rb +67 -67
- data/examples/itemviews/puzzle/main.rb +36 -36
- data/examples/itemviews/puzzle/mainwindow.rb +143 -143
- data/examples/itemviews/puzzle/piecesmodel.rb +174 -174
- data/examples/itemviews/puzzle/puzzlewidget.rb +192 -192
- data/examples/itemviews/simpledommodel/domitem.rb +62 -62
- data/examples/itemviews/simpledommodel/dommodel.rb +139 -139
- data/examples/itemviews/simpledommodel/main.rb +33 -33
- data/examples/itemviews/simpledommodel/mainwindow.rb +66 -66
- data/examples/itemviews/simpletreemodel/default.txt +40 -40
- data/examples/itemviews/simpletreemodel/main.rb +41 -41
- data/examples/itemviews/simpletreemodel/makefile +2 -2
- data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -5
- data/examples/itemviews/simpletreemodel/treeitem.rb +67 -67
- data/examples/itemviews/simpletreemodel/treemodel.rb +164 -164
- data/examples/itemviews/sortingmodel/default.txt +40 -40
- data/examples/itemviews/sortingmodel/main.rb +53 -53
- data/examples/itemviews/sortingmodel/treeitem.rb +73 -73
- data/examples/itemviews/sortingmodel/treemodel.rb +166 -166
- data/examples/itemviews/spinboxdelegate/main.rb +47 -47
- data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -62
- data/examples/killerfilter/killerfilter.rb +55 -55
- data/examples/layouts/basiclayouts/dialog.rb +110 -110
- data/examples/layouts/basiclayouts/main.rb +31 -31
- data/examples/layouts/borderlayout/borderlayout.rb +190 -190
- data/examples/layouts/borderlayout/main.rb +32 -32
- data/examples/layouts/borderlayout/window.rb +52 -52
- data/examples/layouts/flowlayouts/flowlayout.rb +108 -108
- data/examples/layouts/flowlayouts/main.rb +32 -32
- data/examples/layouts/flowlayouts/window.rb +43 -43
- data/examples/mainwindows/application/main.rb +32 -32
- data/examples/mainwindows/application/mainwindow.rb +285 -285
- data/examples/mainwindows/dockwidgets/main.rb +32 -32
- data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -302
- data/examples/mainwindows/mdi/main.rb +32 -32
- data/examples/mainwindows/mdi/mainwindow.rb +363 -363
- data/examples/mainwindows/mdi/mdichild.rb +152 -152
- data/examples/mainwindows/menus/main.rb +32 -32
- data/examples/mainwindows/menus/mainwindow.rb +327 -327
- data/examples/mainwindows/recentfiles/main.rb +32 -32
- data/examples/mainwindows/recentfiles/mainwindow.rb +258 -258
- data/examples/mainwindows/sdi/main.rb +32 -32
- data/examples/mainwindows/sdi/mainwindow.rb +335 -335
- data/examples/network/broadcastreceiver/main.rb +32 -32
- data/examples/network/broadcastreceiver/receiver.rb +64 -64
- data/examples/network/broadcastsender/main.rb +32 -32
- data/examples/network/broadcastsender/sender.rb +72 -72
- data/examples/network/fortuneclient/client.rb +149 -149
- data/examples/network/fortuneclient/main.rb +32 -32
- data/examples/network/fortuneserver/main.rb +32 -32
- data/examples/network/fortuneserver/server.rb +88 -88
- data/examples/network/ftp/ftpwindow.rb +259 -259
- data/examples/network/ftp/main.rb +32 -32
- data/examples/network/http/httpwindow.rb +187 -187
- data/examples/network/http/main.rb +32 -32
- data/examples/network/loopback/dialog.rb +163 -163
- data/examples/network/loopback/main.rb +32 -32
- data/examples/opengl/grabber/glwidget.rb +265 -265
- data/examples/opengl/grabber/main.rb +32 -32
- data/examples/opengl/grabber/mainwindow.rb +189 -189
- data/examples/opengl/hellogl/glwidget.rb +226 -226
- data/examples/opengl/hellogl/main.rb +32 -32
- data/examples/opengl/hellogl/window.rb +66 -66
- data/examples/opengl/textures/glwidget.rb +151 -151
- data/examples/opengl/textures/main.rb +32 -32
- data/examples/opengl/textures/window.rb +77 -77
- data/examples/painting/basicdrawing/main.rb +32 -32
- data/examples/painting/basicdrawing/renderarea.rb +166 -166
- data/examples/painting/basicdrawing/window.rb +215 -215
- data/examples/painting/concentriccircles/circlewidget.rb +88 -88
- data/examples/painting/concentriccircles/main.rb +32 -32
- data/examples/painting/concentriccircles/window.rb +72 -72
- data/examples/painting/fontsampler/main.rb +32 -32
- data/examples/painting/fontsampler/mainwindow.rb +369 -369
- data/examples/painting/fontsampler/mainwindowbase.ui +136 -136
- data/examples/painting/fontsampler/makefile +8 -8
- data/examples/painting/fontsampler/previewdialog.rb +257 -257
- data/examples/painting/fontsampler/previewdialogbase.ui +224 -224
- data/examples/painting/fontsampler/previewlabel.rb +43 -43
- data/examples/painting/imagecomposition/imagecomposer.rb +152 -152
- data/examples/painting/imagecomposition/imagecomposition.qrc +6 -6
- data/examples/painting/imagecomposition/main.rb +33 -33
- data/examples/painting/imagecomposition/makefile +2 -2
- data/examples/painting/painterpaths/main.rb +32 -32
- data/examples/painting/painterpaths/renderarea.rb +97 -97
- data/examples/painting/painterpaths/window.rb +247 -247
- data/examples/painting/svgviewer/files/bubbles.svg +212 -212
- data/examples/painting/svgviewer/files/cubic.svg +77 -77
- data/examples/painting/svgviewer/files/spheres.svg +79 -79
- data/examples/painting/svgviewer/main.rb +38 -38
- data/examples/painting/svgviewer/mainwindow.rb +99 -99
- data/examples/painting/svgviewer/makefile +2 -2
- data/examples/painting/svgviewer/svgview.rb +156 -156
- data/examples/painting/svgviewer/svgviewer.qrc +6 -6
- data/examples/painting/svgviewer/svgwindow.rb +87 -87
- data/examples/painting/transformations/main.rb +32 -32
- data/examples/painting/transformations/renderarea.rb +127 -127
- data/examples/painting/transformations/window.rb +153 -153
- data/examples/passivepopup/passivepopup.rb +38 -38
- data/examples/qdbus/chat/chat.rb +146 -146
- data/examples/qdbus/chat/chat_adaptor.rb +12 -12
- data/examples/qdbus/chat/chat_interface.rb +13 -13
- data/examples/qdbus/chat/chatmainwindow.ui +184 -184
- data/examples/qdbus/chat/chatsetnickname.ui +145 -145
- data/examples/qdbus/chat/makefile +8 -8
- data/examples/qdbus/complexpingpong/complexping.rb +92 -92
- data/examples/qdbus/complexpingpong/complexpong.rb +83 -83
- data/examples/qdbus/complexpingpong/ping-common.rb +1 -1
- data/examples/qdbus/listnames/listnames.rb +69 -69
- data/examples/qdbus/pingpong/ping-common.rb +1 -1
- data/examples/qdbus/pingpong/ping.rb +52 -52
- data/examples/qdbus/pingpong/pong.rb +55 -55
- data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -151
- data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -50
- data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -66
- data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -61
- data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -32
- data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -2
- data/examples/qtscribble/scribble.rb +270 -270
- data/examples/richtext/calendar/main.rb +33 -33
- data/examples/richtext/calendar/mainwindow.rb +173 -173
- data/examples/richtext/orderform/detailsdialog.rb +130 -130
- data/examples/richtext/orderform/main.rb +34 -34
- data/examples/richtext/orderform/mainwindow.rb +194 -194
- data/examples/richtext/syntaxhighlighter/examples/example +79 -79
- data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -90
- data/examples/richtext/syntaxhighlighter/main.rb +34 -34
- data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -105
- data/examples/ruboids/LICENSE.txt +58 -58
- data/examples/ruboids/Manifest +26 -26
- data/examples/ruboids/README +53 -53
- data/examples/ruboids/TODO +29 -29
- data/examples/ruboids/boids.properties +33 -33
- data/examples/ruboids/generateManifest.rb +42 -42
- data/examples/ruboids/release.rb +152 -152
- data/examples/ruboids/ruboids/Boid.rb +141 -141
- data/examples/ruboids/ruboids/BoidView.rb +159 -159
- data/examples/ruboids/ruboids/Camera.rb +24 -24
- data/examples/ruboids/ruboids/CameraDialog.rb +218 -218
- data/examples/ruboids/ruboids/Canvas.rb +143 -143
- data/examples/ruboids/ruboids/Cloud.rb +61 -61
- data/examples/ruboids/ruboids/CloudView.rb +54 -54
- data/examples/ruboids/ruboids/Flock.rb +47 -47
- data/examples/ruboids/ruboids/Graphics.rb +278 -278
- data/examples/ruboids/ruboids/Params.rb +87 -87
- data/examples/ruboids/ruboids/Point.rb +153 -153
- data/examples/ruboids/ruboids/Thing.rb +34 -34
- data/examples/ruboids/ruboids/Triangle.rb +21 -21
- data/examples/ruboids/ruboids/View.rb +88 -88
- data/examples/ruboids/ruboids/World.rb +82 -82
- data/examples/ruboids/ruboids/WorldWindow.rb +52 -52
- data/examples/ruboids/ruboids/info.rb +12 -12
- data/examples/ruboids/ruboids/ruboids.rb +29 -29
- data/examples/threading/main_thread.rb +19 -19
- data/examples/tutorial/t1/t1.rb +10 -10
- data/examples/tutorial/t10/cannon.rb +72 -72
- data/examples/tutorial/t10/lcdrange.rb +45 -45
- data/examples/tutorial/t10/t10.rb +55 -55
- data/examples/tutorial/t11/cannon.rb +124 -124
- data/examples/tutorial/t11/lcdrange.rb +45 -45
- data/examples/tutorial/t11/t11.rb +65 -65
- data/examples/tutorial/t12/cannon.rb +158 -158
- data/examples/tutorial/t12/lcdrange.rb +59 -59
- data/examples/tutorial/t12/t12.rb +66 -66
- data/examples/tutorial/t13/cannon.rb +208 -208
- data/examples/tutorial/t13/gamebrd.rb +113 -113
- data/examples/tutorial/t13/lcdrange.rb +60 -60
- data/examples/tutorial/t13/t13.rb +11 -11
- data/examples/tutorial/t14/cannon.rb +263 -263
- data/examples/tutorial/t14/gamebrd.rb +123 -123
- data/examples/tutorial/t14/lcdrange.rb +63 -63
- data/examples/tutorial/t14/t14.rb +11 -11
- data/examples/tutorial/t2/t2.rb +16 -16
- data/examples/tutorial/t3/t3.rb +18 -18
- data/examples/tutorial/t4/t4.rb +25 -25
- data/examples/tutorial/t5/t5.rb +37 -37
- data/examples/tutorial/t6/t6.rb +52 -52
- data/examples/tutorial/t7/lcdrange.rb +32 -32
- data/examples/tutorial/t7/t7.rb +42 -42
- data/examples/tutorial/t8/cannon.rb +38 -38
- data/examples/tutorial/t8/lcdrange.rb +45 -45
- data/examples/tutorial/t8/t8.rb +43 -43
- data/examples/tutorial/t9/cannon.rb +45 -45
- data/examples/tutorial/t9/lcdrange.rb +46 -46
- data/examples/tutorial/t9/t9.rb +43 -43
- data/examples/widgets/analogclock/analogclock.rb +94 -94
- data/examples/widgets/analogclock/main.rb +9 -9
- data/examples/widgets/calculator/button.rb +45 -45
- data/examples/widgets/calculator/calculator.rb +382 -382
- data/examples/widgets/calculator/main.rb +32 -32
- data/examples/widgets/charactermap/characterwidget.rb +109 -109
- data/examples/widgets/charactermap/main.rb +32 -32
- data/examples/widgets/charactermap/mainwindow.rb +118 -118
- data/examples/widgets/digitalclock/digitalclock.rb +30 -30
- data/examples/widgets/digitalclock/main.rb +9 -9
- data/examples/widgets/groupbox/main.rb +32 -32
- data/examples/widgets/groupbox/window.rb +134 -134
- data/examples/widgets/icons/iconpreviewarea.rb +110 -110
- data/examples/widgets/icons/iconsizespinbox.rb +39 -39
- data/examples/widgets/icons/imagedelegate.rb +73 -73
- data/examples/widgets/icons/main.rb +32 -32
- data/examples/widgets/icons/mainwindow.rb +351 -351
- data/examples/widgets/imageviewer/imageviewer.rb +219 -219
- data/examples/widgets/imageviewer/main.rb +32 -32
- data/examples/widgets/lineedits/main.rb +32 -32
- data/examples/widgets/lineedits/window.rb +199 -199
- data/examples/widgets/movie/main.rb +32 -32
- data/examples/widgets/movie/movieplayer.rb +201 -201
- data/examples/widgets/screenshot/main.rb +32 -32
- data/examples/widgets/screenshot/screenshot.rb +154 -154
- data/examples/widgets/scribble/main.rb +32 -32
- data/examples/widgets/scribble/mainwindow.rb +202 -202
- data/examples/widgets/scribble/scribblearea.rb +154 -154
- data/examples/widgets/sliders/main.rb +32 -32
- data/examples/widgets/sliders/slidersgroup.rb +97 -97
- data/examples/widgets/sliders/window.rb +124 -124
- data/examples/widgets/spinboxes/main.rb +32 -32
- data/examples/widgets/spinboxes/window.rb +213 -213
- data/examples/widgets/tetrix/main.rb +33 -33
- data/examples/widgets/tetrix/tetrixboard.rb +346 -346
- data/examples/widgets/tetrix/tetrixpiece.rb +135 -135
- data/examples/widgets/tetrix/tetrixwindow.rb +88 -88
- data/examples/widgets/tooltips/main.rb +32 -32
- data/examples/widgets/tooltips/shapeitem.rb +31 -31
- data/examples/widgets/tooltips/sortingbox.rb +222 -222
- data/examples/widgets/wiggly/dialog.rb +48 -48
- data/examples/widgets/wiggly/main.rb +9 -9
- data/examples/widgets/wiggly/wigglywidget.rb +75 -75
- data/examples/widgets/windowflags/controllerwindow.rb +195 -195
- data/examples/widgets/windowflags/main.rb +32 -32
- data/examples/widgets/windowflags/previewwindow.rb +103 -103
- data/examples/xml/dombookmarks/frank.xbel +230 -230
- data/examples/xml/dombookmarks/jennifer.xbel +93 -93
- data/examples/xml/dombookmarks/main.rb +34 -34
- data/examples/xml/dombookmarks/mainwindow.rb +129 -129
- data/examples/xml/dombookmarks/xbeltree.rb +172 -172
- data/examples/xml/saxbookmarks/frank.xbel +230 -230
- data/examples/xml/saxbookmarks/jennifer.xbel +93 -93
- data/examples/xml/saxbookmarks/main.rb +34 -34
- data/examples/xml/saxbookmarks/mainwindow.rb +144 -144
- data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -95
- data/examples/xml/saxbookmarks/xbelhandler.rb +122 -122
- data/ext/CMakeLists.txt +3 -0
- data/ext/cmake/modules/BasicFindPackageVersion.cmake.in +30 -30
- data/ext/cmake/modules/CMakeCSharpCompiler.cmake.in +7 -7
- data/ext/cmake/modules/CMakeCSharpInformation.cmake +366 -366
- data/ext/cmake/modules/CMakeDetermineCSharpCompiler.cmake +85 -85
- data/ext/cmake/modules/CMakeTestCSharpCompiler.cmake +1 -1
- data/ext/cmake/modules/FindLibraryWithDebug.cmake +113 -113
- data/ext/cmake/modules/FindMono.cmake +36 -36
- data/ext/cmake/modules/FindPHP5.cmake +179 -179
- data/ext/cmake/modules/FindPerlMore.cmake +78 -78
- data/ext/cmake/modules/FindPhonon.cmake +71 -71
- data/ext/cmake/modules/FindQImageBlitz.cmake +51 -51
- data/ext/cmake/modules/FindQScintilla.cmake +57 -57
- data/ext/cmake/modules/FindQwt5.cmake +104 -104
- data/ext/cmake/modules/FindRuby.cmake +279 -279
- data/ext/cmake/modules/FindSmoke.cmake +78 -78
- data/ext/cmake/modules/MacroLogFeature.cmake +146 -146
- data/ext/cmake/modules/MacroOptionalAddBindings.cmake +47 -47
- data/ext/cmake/modules/MacroOptionalFindPackage.cmake +28 -28
- data/ext/cmake/modules/MacroPushRequiredVars.cmake +47 -47
- data/ext/cmake/modules/MacroWriteBasicCMakeVersionFile.cmake +22 -22
- data/ext/cmake/modules/SmokeConfig.cmake.in +109 -109
- data/ext/generator/CMakeLists.txt +38 -38
- data/ext/generator/cmake/BasicFindPackageVersion.cmake.in +30 -30
- data/ext/generator/cmake/CMakeLists.txt +24 -24
- data/ext/generator/cmake/FindLibraryWithDebug.cmake +113 -113
- data/ext/generator/cmake/FindPhonon.cmake +71 -71
- data/ext/generator/cmake/FindQImageBlitz.cmake +51 -51
- data/ext/generator/cmake/FindQScintilla.cmake +57 -57
- data/ext/generator/cmake/FindQwt5.cmake +104 -104
- data/ext/generator/cmake/HandleImportedTargetsInCMakeRequiredLibraries.cmake +85 -85
- data/ext/generator/cmake/MacroLogFeature.cmake +146 -146
- data/ext/generator/cmake/MacroOptionalAddBindings.cmake +47 -47
- data/ext/generator/cmake/MacroOptionalFindPackage.cmake +28 -28
- data/ext/generator/cmake/MacroWriteBasicCMakeVersionFile.cmake +22 -22
- data/ext/generator/cmake/SmokeConfig.cmake.in +109 -109
- data/ext/generator/config.h +25 -25
- data/ext/generator/generator_export.h +31 -31
- data/ext/generator/generatorenvironment.cpp +52 -52
- data/ext/generator/generatorenvironment.h +35 -35
- data/ext/generator/generatorpreprocessor.cpp +303 -303
- data/ext/generator/generatorpreprocessor.h +83 -83
- data/ext/generator/generators/CMakeLists.txt +4 -4
- data/ext/generator/generators/dump/CMakeLists.txt +15 -15
- data/ext/generator/generators/dump/generator_dump.cpp +36 -36
- data/ext/generator/generators/smoke/CMakeLists.txt +18 -18
- data/ext/generator/generators/smoke/generator_smoke.cpp +240 -240
- data/ext/generator/generators/smoke/globals.h +140 -140
- data/ext/generator/generators/smoke/helpers.cpp +793 -793
- data/ext/generator/generators/smoke/writeClasses.cpp +502 -502
- data/ext/generator/generators/smoke/writeSmokeDataFile.cpp +754 -754
- data/ext/generator/generatorvisitor.cpp +922 -922
- data/ext/generator/generatorvisitor.h +119 -119
- data/ext/generator/name_compiler.cpp +205 -205
- data/ext/generator/name_compiler.h +76 -76
- data/ext/generator/options.cpp +33 -33
- data/ext/generator/options.h +46 -46
- data/ext/generator/parser/CMakeLists.txt +50 -50
- data/ext/generator/parser/ast.cpp +21 -21
- data/ext/generator/parser/ast.h +923 -923
- data/ext/generator/parser/astutilities.h +65 -65
- data/ext/generator/parser/codegenerator.cpp +867 -867
- data/ext/generator/parser/codegenerator.h +180 -180
- data/ext/generator/parser/codemodel_fwd.h +76 -76
- data/ext/generator/parser/commentformatter.cpp +54 -54
- data/ext/generator/parser/commentformatter.h +45 -45
- data/ext/generator/parser/commentparser.cpp +109 -109
- data/ext/generator/parser/commentparser.h +84 -84
- data/ext/generator/parser/control.cpp +40 -40
- data/ext/generator/parser/control.h +51 -51
- data/ext/generator/parser/cppparser_export.h +33 -33
- data/ext/generator/parser/default_visitor.cpp +470 -470
- data/ext/generator/parser/default_visitor.h +116 -116
- data/ext/generator/parser/dumptree.cpp +146 -146
- data/ext/generator/parser/dumptree.h +50 -50
- data/ext/generator/parser/indexedstring.cpp +213 -213
- data/ext/generator/parser/indexedstring.h +147 -147
- data/ext/generator/parser/kdevelop-parser-rev +1 -1
- data/ext/generator/parser/kdevvarlengtharray.h +346 -346
- data/ext/generator/parser/lexer.cpp +964 -964
- data/ext/generator/parser/lexer.h +308 -308
- data/ext/generator/parser/listnode.cpp +20 -20
- data/ext/generator/parser/listnode.h +97 -97
- data/ext/generator/parser/memorypool.cpp +20 -20
- data/ext/generator/parser/memorypool.h +41 -41
- data/ext/generator/parser/name_compiler.cpp +190 -190
- data/ext/generator/parser/name_compiler.h +77 -77
- data/ext/generator/parser/parser.cpp +4708 -4708
- data/ext/generator/parser/parser.h +290 -290
- data/ext/generator/parser/parsesession.cpp +106 -106
- data/ext/generator/parser/parsesession.h +87 -87
- data/ext/generator/parser/problem.h +21 -21
- data/ext/generator/parser/rpp/CMakeLists.txt +45 -45
- data/ext/generator/parser/rpp/Makefile.am +13 -13
- data/ext/generator/parser/rpp/anchor.h +51 -51
- data/ext/generator/parser/rpp/appendedlist.h +363 -363
- data/ext/generator/parser/rpp/chartools.cpp +146 -146
- data/ext/generator/parser/rpp/chartools.h +99 -99
- data/ext/generator/parser/rpp/macrorepository.cpp +44 -44
- data/ext/generator/parser/rpp/macrorepository.h +59 -59
- data/ext/generator/parser/rpp/pp-configuration +86 -86
- data/ext/generator/parser/rpp/pp-engine.h +267 -267
- data/ext/generator/parser/rpp/pp-environment.cpp +271 -271
- data/ext/generator/parser/rpp/pp-environment.h +119 -119
- data/ext/generator/parser/rpp/pp-internal.cpp +38 -38
- data/ext/generator/parser/rpp/pp-internal.h +37 -37
- data/ext/generator/parser/rpp/pp-location.cpp +191 -191
- data/ext/generator/parser/rpp/pp-location.h +89 -89
- data/ext/generator/parser/rpp/pp-macro-expander.cpp +568 -568
- data/ext/generator/parser/rpp/pp-macro-expander.cpp.orig +558 -558
- data/ext/generator/parser/rpp/pp-macro-expander.h +130 -130
- data/ext/generator/parser/rpp/pp-macro.cpp +153 -153
- data/ext/generator/parser/rpp/pp-macro.h +176 -176
- data/ext/generator/parser/rpp/pp-scanner.cpp +311 -311
- data/ext/generator/parser/rpp/pp-scanner.h +97 -97
- data/ext/generator/parser/rpp/pp-stream.cpp +425 -425
- data/ext/generator/parser/rpp/pp-stream.h +183 -183
- data/ext/generator/parser/rpp/preprocessor.cpp +65 -65
- data/ext/generator/parser/rpp/preprocessor.h +80 -80
- data/ext/generator/parser/rpp/rpp.pri +2 -2
- data/ext/generator/parser/rpp/test/t001.cpp +23 -23
- data/ext/generator/parser/rpp/test/t002.cpp +15 -15
- data/ext/generator/parser/rpp/test/t003.cpp +10 -10
- data/ext/generator/parser/rpp/test/t004.cpp +9 -9
- data/ext/generator/parser/rpp/test/t005.cpp +10 -10
- data/ext/generator/parser/rpp/test/t006.cpp +10 -10
- data/ext/generator/parser/rpp/test/t007.cpp +6 -6
- data/ext/generator/parser/rpp/test/t008.cpp +6 -6
- data/ext/generator/parser/rpp/test/t009.cpp +5 -5
- data/ext/generator/parser/rpp/test/t010.cpp +15 -15
- data/ext/generator/parser/rpp/test/t011.cpp +9 -9
- data/ext/generator/parser/rpp/tests/CMakeLists.txt +17 -17
- data/ext/generator/parser/rpp/tests/main.cpp +69 -69
- data/ext/generator/parser/rxx.pri +50 -50
- data/ext/generator/parser/rxx_allocator.h +128 -128
- data/ext/generator/parser/safetycounter.h +57 -57
- data/ext/generator/parser/simplecursor.h +74 -74
- data/ext/generator/parser/stringhelpers.cpp +577 -577
- data/ext/generator/parser/stringhelpers.h +118 -118
- data/ext/generator/parser/symbol.h +140 -140
- data/ext/generator/parser/tests/CMakeLists.txt +46 -46
- data/ext/generator/parser/tests/test_generator.cpp +259 -259
- data/ext/generator/parser/tests/test_parser.cpp +474 -474
- data/ext/generator/parser/tests/test_pool.cpp +109 -109
- data/ext/generator/parser/tests/test_pool.h +35 -35
- data/ext/generator/parser/tests/testconfig.h.cmake +4 -4
- data/ext/generator/parser/tokens.cpp +367 -367
- data/ext/generator/parser/tokens.h +148 -148
- data/ext/generator/parser/type_compiler.cpp +135 -135
- data/ext/generator/parser/type_compiler.h +68 -68
- data/ext/generator/parser/visitor.cpp +115 -115
- data/ext/generator/parser/visitor.h +138 -138
- data/ext/generator/smoke.h +557 -557
- data/ext/generator/smokegen_string.h +43 -43
- data/ext/generator/type.cpp +204 -204
- data/ext/generator/type.h +497 -497
- data/ext/generator/type_compiler.cpp +277 -277
- data/ext/generator/type_compiler.h +80 -80
- data/ext/ruby/CMakeLists.txt +64 -64
- data/ext/ruby/qtdeclarative/CMakeLists.txt +17 -17
- data/ext/ruby/qtdeclarative/qtdeclarative.cpp +67 -67
- data/ext/ruby/qtdeclarative/qtdeclarative.rb +17 -17
- data/ext/ruby/qtdeclarative/qtdeclarativehandlers.cpp +36 -36
- data/ext/ruby/qtruby/AUTHORS +54 -54
- data/ext/ruby/qtruby/COPYING +355 -355
- data/ext/ruby/qtruby/COPYING.LIB +510 -510
- data/ext/ruby/qtruby/ChangeLog +3732 -3732
- data/ext/ruby/qtruby/INSTALL +79 -79
- data/ext/ruby/qtruby/README +264 -264
- data/ext/ruby/qtruby/TODO +8 -8
- data/ext/ruby/qtruby/bin/rbqtapi +152 -152
- data/ext/ruby/qtruby/rails_support/CMakeLists.txt +1 -1
- data/ext/ruby/qtruby/rails_support/active_item_model.rb +234 -234
- data/ext/ruby/qtruby/rails_support/active_table_model.rb +122 -122
- data/ext/ruby/qtruby/src/Qt.cpp +8 -8
- data/ext/ruby/qtruby/src/marshall_basetypes.h +208 -208
- data/ext/ruby/qtruby/src/marshall_complex.h +175 -175
- data/ext/ruby/qtruby/src/marshall_macros.h +647 -647
- data/ext/ruby/qtruby/src/marshall_types.cpp +815 -815
- data/ext/ruby/qtruby/src/marshall_types.h +240 -240
- data/ext/ruby/qtruby/src/qtruby.cpp +69 -12
- data/ext/ruby/qtruby/src/qtruby.h +1 -1
- data/ext/ruby/qtruby/test/opoverloading.rb +46 -46
- data/ext/ruby/qtruby/test/unittests.rb +151 -151
- data/ext/ruby/qtruby/tools/rbrcc/main.cpp +173 -173
- data/ext/ruby/qtruby/tools/rbrcc/rbrcc.pro +14 -14
- data/ext/ruby/qtruby/tools/rbrcc/rcc.cpp +648 -648
- data/ext/ruby/qtruby/tools/rbrcc/rcc.h +165 -165
- data/ext/ruby/qtruby/tools/rbuic/LICENSE.GPL +280 -280
- data/ext/ruby/qtruby/tools/rbuic/TODO +4 -4
- data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.cpp +106 -106
- data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.h +95 -95
- data/ext/ruby/qtruby/tools/rbuic/databaseinfo.cpp +102 -102
- data/ext/ruby/qtruby/tools/rbuic/databaseinfo.h +85 -85
- data/ext/ruby/qtruby/tools/rbuic/driver.cpp +384 -384
- data/ext/ruby/qtruby/tools/rbuic/driver.h +141 -141
- data/ext/ruby/qtruby/tools/rbuic/option.h +3 -0
- data/ext/ruby/qtruby/tools/rbuic/rbuic.pri +23 -23
- data/ext/ruby/qtruby/tools/rbuic/rbuic4.pro +43 -43
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.cpp +150 -150
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.h +83 -83
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.cpp +217 -217
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.h +85 -85
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.cpp +185 -185
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.h +86 -86
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.cpp +88 -88
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.h +83 -83
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.cpp +126 -126
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.h +87 -87
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.cpp +2478 -2478
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.h +314 -314
- data/ext/ruby/qtruby/tools/rbuic/ruby/ruby.pri +18 -18
- data/ext/ruby/qtruby/tools/rbuic/treewalker.cpp +318 -318
- data/ext/ruby/qtruby/tools/rbuic/treewalker.h +139 -139
- data/ext/ruby/qtruby/tools/rbuic/ui4.cpp +7623 -7623
- data/ext/ruby/qtruby/tools/rbuic/ui4.h +3180 -3180
- data/ext/ruby/qtruby/tools/rbuic/utils.h +125 -125
- data/ext/ruby/qtruby/tools/rbuic/validator.cpp +100 -100
- data/ext/ruby/qtruby/tools/rbuic/validator.h +80 -80
- data/ext/ruby/qtscript/CMakeLists.txt +19 -19
- data/ext/ruby/qtscript/qtscript.cpp +83 -83
- data/ext/ruby/qtscript/qtscript.rb +40 -40
- data/ext/ruby/qtscript/qtscripthandlers.cpp +37 -37
- data/ext/ruby/qtscript/smokedata.cpp +1403 -1403
- data/ext/ruby/qttest/CMakeLists.txt +18 -18
- data/ext/ruby/qttest/ChangeLog +9 -9
- data/ext/ruby/qttest/examples/myfirsttest.rb +30 -30
- data/ext/ruby/qttest/qttest.cpp +83 -83
- data/ext/ruby/qttest/qttest.rb +166 -166
- data/ext/ruby/qttest/qttesthandlers.cpp +37 -37
- data/ext/ruby/qtuitools/CMakeLists.txt +16 -16
- data/ext/ruby/qtuitools/qtuitools.cpp +83 -83
- data/ext/ruby/qtuitools/qtuitools.rb +17 -17
- data/ext/ruby/qtuitools/qtuitoolshandlers.cpp +32 -32
- data/ext/ruby/qtwebkit/CMakeLists.txt +17 -17
- data/ext/ruby/qtwebkit/qtwebkit.cpp +67 -67
- data/ext/ruby/qtwebkit/qtwebkit.rb +17 -17
- data/ext/ruby/qtwebkit/qtwebkithandlers.cpp +40 -40
- data/ext/smoke/deptool/CMakeLists.txt +7 -7
- data/ext/smoke/deptool/main.cpp +128 -128
- data/ext/smoke/qtcore/CMakeLists.txt +88 -88
- data/ext/smoke/qtcore/QtGuess.txt +180 -180
- data/ext/smoke/qtcore/config.xml.cmake +10 -10
- data/ext/smoke/qtcore/qt-config.xml.cmake +21 -21
- data/ext/smoke/qtcore/qtcore_includes.h +1 -1
- data/ext/smoke/qtcore/smokeconfig.xml +193 -193
- data/ext/smoke/qtcore/tests/CMakeLists.txt +13 -13
- data/ext/smoke/qtcore/tests/test.cpp +846 -846
- data/ext/smoke/qtcore_smoke.h +16 -16
- data/ext/smoke/qtdbus/CMakeLists.txt +38 -38
- data/ext/smoke/qtdbus/config.xml.cmake +11 -11
- data/ext/smoke/qtdbus/qtdbus_includes.h +2 -2
- data/ext/smoke/qtdbus/smokeconfig.xml +65 -65
- data/ext/smoke/qtdbus_smoke.h +16 -16
- data/ext/smoke/qtdeclarative/CMakeLists.txt +45 -45
- data/ext/smoke/qtdeclarative/config.xml.cmake +12 -12
- data/ext/smoke/qtdeclarative/qtdeclarative_includes.h +3 -3
- data/ext/smoke/qtdeclarative/smokeconfig.xml +59 -59
- data/ext/smoke/qtdeclarative_smoke.h +16 -16
- data/ext/smoke/qtgui/CMakeLists.txt +76 -76
- data/ext/smoke/qtgui/config.xml.cmake +11 -11
- data/ext/smoke/qtgui/qtgui_includes.h +7 -7
- data/ext/smoke/qtgui/smokeconfig.xml +500 -500
- data/ext/smoke/qtgui_smoke.h +16 -16
- data/ext/smoke/qthelp/CMakeLists.txt +45 -45
- data/ext/smoke/qthelp/config.xml.cmake +13 -13
- data/ext/smoke/qthelp/qthelp_includes.h +3 -3
- data/ext/smoke/qthelp/smokeconfig.xml +54 -54
- data/ext/smoke/qthelp_smoke.h +16 -16
- data/ext/smoke/qtmultimedia/CMakeLists.txt +42 -42
- data/ext/smoke/qtmultimedia/config.xml.cmake +12 -12
- data/ext/smoke/qtmultimedia/qtmultimedia_includes.h +3 -3
- data/ext/smoke/qtmultimedia/smokeconfig.xml +51 -51
- data/ext/smoke/qtmultimedia_smoke.h +16 -16
- data/ext/smoke/qtnetwork/CMakeLists.txt +38 -38
- data/ext/smoke/qtnetwork/config.xml.cmake +11 -11
- data/ext/smoke/qtnetwork/qtnetwork_includes.h +2 -2
- data/ext/smoke/qtnetwork/smokeconfig.xml +81 -81
- data/ext/smoke/qtnetwork_smoke.h +16 -16
- data/ext/smoke/qtopengl/CMakeLists.txt +43 -43
- data/ext/smoke/qtopengl/config.xml.cmake +13 -13
- data/ext/smoke/qtopengl/qtopengl_includes.h +3 -3
- data/ext/smoke/qtopengl/smokeconfig.xml +58 -58
- data/ext/smoke/qtopengl_smoke.h +16 -16
- data/ext/smoke/qtscript/CMakeLists.txt +31 -31
- data/ext/smoke/qtscript/config.xml.cmake +11 -11
- data/ext/smoke/qtscript/qtscript_includes.h +14 -14
- data/ext/smoke/qtscript/smokeconfig.xml +39 -39
- data/ext/smoke/qtscript_smoke.h +16 -16
- data/ext/smoke/qtsql/CMakeLists.txt +45 -45
- data/ext/smoke/qtsql/config.xml.cmake +11 -11
- data/ext/smoke/qtsql/qtsql_includes.h +3 -3
- data/ext/smoke/qtsql/smokeconfig.xml +60 -60
- data/ext/smoke/qtsql_smoke.h +16 -16
- data/ext/smoke/qtsvg/CMakeLists.txt +43 -43
- data/ext/smoke/qtsvg/config.xml.cmake +12 -12
- data/ext/smoke/qtsvg/qtsvg_includes.h +3 -3
- data/ext/smoke/qtsvg/smokeconfig.xml +46 -46
- data/ext/smoke/qtsvg_smoke.h +16 -16
- data/ext/smoke/qttest/CMakeLists.txt +35 -35
- data/ext/smoke/qttest/config.xml.cmake +12 -12
- data/ext/smoke/qttest/qttest_includes.h +14 -14
- data/ext/smoke/qttest/smokeconfig.xml +36 -36
- data/ext/smoke/qttest_smoke.h +16 -16
- data/ext/smoke/qtuitools/CMakeLists.txt +30 -30
- data/ext/smoke/qtuitools/config.xml.cmake +12 -12
- data/ext/smoke/qtuitools/qtuitools_includes.h +1 -1
- data/ext/smoke/qtuitools/smokeconfig.xml +20 -20
- data/ext/smoke/qtuitools_smoke.h +16 -16
- data/ext/smoke/qtwebkit/CMakeLists.txt +36 -36
- data/ext/smoke/qtwebkit/config.xml.cmake +11 -11
- data/ext/smoke/qtwebkit/qtwebkit_includes.h +1 -1
- data/ext/smoke/qtwebkit/smokeconfig.xml +48 -48
- data/ext/smoke/qtwebkit_smoke.h +16 -16
- data/ext/smoke/qtxml/CMakeLists.txt +41 -41
- data/ext/smoke/qtxml/config.xml.cmake +11 -11
- data/ext/smoke/qtxml/qtxml_includes.h +2 -2
- data/ext/smoke/qtxml/smokeconfig.xml +70 -70
- data/ext/smoke/qtxml_smoke.h +16 -16
- data/ext/smoke/qtxmlpatterns/CMakeLists.txt +42 -42
- data/ext/smoke/qtxmlpatterns/config.xml.cmake +12 -12
- data/ext/smoke/qtxmlpatterns/qtxmlpatterns_includes.h +3 -3
- data/ext/smoke/qtxmlpatterns/smokeconfig.xml +80 -80
- data/ext/smoke/qtxmlpatterns_smoke.h +16 -16
- data/ext/smoke/smokeapi/CMakeLists.txt +9 -9
- data/ext/smoke/smokeapi/main.cpp +309 -309
- data/ext/smoke/smokebase/CMakeLists.txt +11 -11
- data/ext/smoke/smokebase/smokebase.cpp +6 -6
- data/ext/smoke/solid_smoke.h +16 -16
- data/extconf.rb +2 -2
- data/lib/Qt.rb +1 -1
- data/lib/Qt4.rb +111 -111
- data/lib/qtbindings_version.rb +2 -2
- data/lib/qtdeclarative/qtdeclarative.rb +17 -17
- data/lib/qtscript/qtscript.rb +40 -40
- data/lib/qttest/qttest.rb +166 -166
- data/lib/qtuitools/qtuitools.rb +17 -17
- data/lib/qtwebkit/qtwebkit.rb +17 -17
- data/qtbindings.gemspec +18 -18
- metadata +48 -48
@@ -1,119 +1,119 @@
|
|
1
|
-
/*
|
2
|
-
Copyright (C) 2009 Arno Rehn <arno@arnorehn.de>
|
3
|
-
|
4
|
-
This program is free software; you can redistribute it and/or modify
|
5
|
-
it under the terms of the GNU General Public License as published by
|
6
|
-
the Free Software Foundation; either version 2 of the License, or
|
7
|
-
(at your option) any later version.
|
8
|
-
|
9
|
-
This program is distributed in the hope that it will be useful,
|
10
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
-
GNU General Public License for more details.
|
13
|
-
|
14
|
-
You should have received a copy of the GNU General Public License along
|
15
|
-
with this program; if not, write to the Free Software Foundation, Inc.,
|
16
|
-
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
17
|
-
*/
|
18
|
-
|
19
|
-
#ifndef PARSERVISITOR_H
|
20
|
-
#define PARSERVISITOR_H
|
21
|
-
|
22
|
-
#include <QStringList>
|
23
|
-
#include <QStack>
|
24
|
-
|
25
|
-
#include <default_visitor.h>
|
26
|
-
#include <parsesession.h>
|
27
|
-
#include <lexer.h>
|
28
|
-
|
29
|
-
#include "type.h"
|
30
|
-
|
31
|
-
class NameCompiler;
|
32
|
-
class TypeCompiler;
|
33
|
-
|
34
|
-
struct QProperty
|
35
|
-
{
|
36
|
-
QString type;
|
37
|
-
bool isPtr;
|
38
|
-
QString name;
|
39
|
-
QString read;
|
40
|
-
QString write;
|
41
|
-
};
|
42
|
-
|
43
|
-
class GeneratorVisitor : public DefaultVisitor
|
44
|
-
{
|
45
|
-
public:
|
46
|
-
GeneratorVisitor(ParseSession *session, const QString& header = QString());
|
47
|
-
virtual ~GeneratorVisitor();
|
48
|
-
BasicTypeDeclaration* resolveTypeInSuperClasses(const Class* klass, const QString& name);
|
49
|
-
BasicTypeDeclaration* resolveType(const QString& name);
|
50
|
-
BasicTypeDeclaration* resolveType(QString& name);
|
51
|
-
QString resolveEnumMember(const QString& name);
|
52
|
-
QString resolveEnumMember(const QString& parent, const QString& name);
|
53
|
-
QPair<bool, bool> parseCv(const ListNode<std::size_t> *cv);
|
54
|
-
|
55
|
-
protected:
|
56
|
-
inline const Token& token(std::size_t token) { return m_session->token_stream->token(token); }
|
57
|
-
|
58
|
-
virtual void visitAccessSpecifier(AccessSpecifierAST* node);
|
59
|
-
virtual void visitBaseSpecifier(BaseSpecifierAST* node);
|
60
|
-
virtual void visitClassSpecifier(ClassSpecifierAST* node);
|
61
|
-
virtual void visitDeclarator(DeclaratorAST* node);
|
62
|
-
virtual void visitElaboratedTypeSpecifier(ElaboratedTypeSpecifierAST* node);
|
63
|
-
virtual void visitEnumSpecifier(EnumSpecifierAST *);
|
64
|
-
virtual void visitEnumerator(EnumeratorAST *);
|
65
|
-
virtual void visitFunctionDefinition(FunctionDefinitionAST* );
|
66
|
-
virtual void visitInitializerClause(InitializerClauseAST *);
|
67
|
-
virtual void visitNamespace(NamespaceAST* node);
|
68
|
-
virtual void visitParameterDeclaration(ParameterDeclarationAST* node);
|
69
|
-
virtual void visitSimpleDeclaration(SimpleDeclarationAST* node);
|
70
|
-
virtual void visitSimpleTypeSpecifier(SimpleTypeSpecifierAST* node);
|
71
|
-
virtual void visitTemplateDeclaration(TemplateDeclarationAST* node);
|
72
|
-
virtual void visitTemplateArgument(TemplateArgumentAST* node);
|
73
|
-
virtual void visitTypedef(TypedefAST* node);
|
74
|
-
virtual void visitUsing(UsingAST* node);
|
75
|
-
virtual void visitUsingDirective(UsingDirectiveAST* node);
|
76
|
-
|
77
|
-
private:
|
78
|
-
NameCompiler *nc;
|
79
|
-
TypeCompiler *tc;
|
80
|
-
|
81
|
-
ParseSession *m_session;
|
82
|
-
QString m_header;
|
83
|
-
|
84
|
-
bool createType;
|
85
|
-
bool createTypedef;
|
86
|
-
short inClass;
|
87
|
-
|
88
|
-
bool inTemplate;
|
89
|
-
bool isStatic;
|
90
|
-
bool isVirtual;
|
91
|
-
bool isExplicit;
|
92
|
-
bool hasInitializer;
|
93
|
-
|
94
|
-
Type currentType;
|
95
|
-
Type* currentTypeRef;
|
96
|
-
|
97
|
-
bool inMethod;
|
98
|
-
Method currentMethod;
|
99
|
-
|
100
|
-
Function currentFunction;
|
101
|
-
|
102
|
-
Enum currentEnum;
|
103
|
-
Enum* currentEnumRef;
|
104
|
-
|
105
|
-
Class::Kind kind;
|
106
|
-
QStack<Class*> klass;
|
107
|
-
QStack<Access> access;
|
108
|
-
QStack<bool> inSignals;
|
109
|
-
QStack<bool> inSlots;
|
110
|
-
|
111
|
-
QStack<QStringList> usingTypes;
|
112
|
-
QStack<QStringList> usingNamespaces;
|
113
|
-
|
114
|
-
QStringList nspace;
|
115
|
-
|
116
|
-
QStack<QList<QProperty> > q_properties;
|
117
|
-
};
|
118
|
-
|
119
|
-
#endif // PARSERVISITOR_H
|
1
|
+
/*
|
2
|
+
Copyright (C) 2009 Arno Rehn <arno@arnorehn.de>
|
3
|
+
|
4
|
+
This program is free software; you can redistribute it and/or modify
|
5
|
+
it under the terms of the GNU General Public License as published by
|
6
|
+
the Free Software Foundation; either version 2 of the License, or
|
7
|
+
(at your option) any later version.
|
8
|
+
|
9
|
+
This program is distributed in the hope that it will be useful,
|
10
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
GNU General Public License for more details.
|
13
|
+
|
14
|
+
You should have received a copy of the GNU General Public License along
|
15
|
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
16
|
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
17
|
+
*/
|
18
|
+
|
19
|
+
#ifndef PARSERVISITOR_H
|
20
|
+
#define PARSERVISITOR_H
|
21
|
+
|
22
|
+
#include <QStringList>
|
23
|
+
#include <QStack>
|
24
|
+
|
25
|
+
#include <default_visitor.h>
|
26
|
+
#include <parsesession.h>
|
27
|
+
#include <lexer.h>
|
28
|
+
|
29
|
+
#include "type.h"
|
30
|
+
|
31
|
+
class NameCompiler;
|
32
|
+
class TypeCompiler;
|
33
|
+
|
34
|
+
struct QProperty
|
35
|
+
{
|
36
|
+
QString type;
|
37
|
+
bool isPtr;
|
38
|
+
QString name;
|
39
|
+
QString read;
|
40
|
+
QString write;
|
41
|
+
};
|
42
|
+
|
43
|
+
class GeneratorVisitor : public DefaultVisitor
|
44
|
+
{
|
45
|
+
public:
|
46
|
+
GeneratorVisitor(ParseSession *session, const QString& header = QString());
|
47
|
+
virtual ~GeneratorVisitor();
|
48
|
+
BasicTypeDeclaration* resolveTypeInSuperClasses(const Class* klass, const QString& name);
|
49
|
+
BasicTypeDeclaration* resolveType(const QString& name);
|
50
|
+
BasicTypeDeclaration* resolveType(QString& name);
|
51
|
+
QString resolveEnumMember(const QString& name);
|
52
|
+
QString resolveEnumMember(const QString& parent, const QString& name);
|
53
|
+
QPair<bool, bool> parseCv(const ListNode<std::size_t> *cv);
|
54
|
+
|
55
|
+
protected:
|
56
|
+
inline const Token& token(std::size_t token) { return m_session->token_stream->token(token); }
|
57
|
+
|
58
|
+
virtual void visitAccessSpecifier(AccessSpecifierAST* node);
|
59
|
+
virtual void visitBaseSpecifier(BaseSpecifierAST* node);
|
60
|
+
virtual void visitClassSpecifier(ClassSpecifierAST* node);
|
61
|
+
virtual void visitDeclarator(DeclaratorAST* node);
|
62
|
+
virtual void visitElaboratedTypeSpecifier(ElaboratedTypeSpecifierAST* node);
|
63
|
+
virtual void visitEnumSpecifier(EnumSpecifierAST *);
|
64
|
+
virtual void visitEnumerator(EnumeratorAST *);
|
65
|
+
virtual void visitFunctionDefinition(FunctionDefinitionAST* );
|
66
|
+
virtual void visitInitializerClause(InitializerClauseAST *);
|
67
|
+
virtual void visitNamespace(NamespaceAST* node);
|
68
|
+
virtual void visitParameterDeclaration(ParameterDeclarationAST* node);
|
69
|
+
virtual void visitSimpleDeclaration(SimpleDeclarationAST* node);
|
70
|
+
virtual void visitSimpleTypeSpecifier(SimpleTypeSpecifierAST* node);
|
71
|
+
virtual void visitTemplateDeclaration(TemplateDeclarationAST* node);
|
72
|
+
virtual void visitTemplateArgument(TemplateArgumentAST* node);
|
73
|
+
virtual void visitTypedef(TypedefAST* node);
|
74
|
+
virtual void visitUsing(UsingAST* node);
|
75
|
+
virtual void visitUsingDirective(UsingDirectiveAST* node);
|
76
|
+
|
77
|
+
private:
|
78
|
+
NameCompiler *nc;
|
79
|
+
TypeCompiler *tc;
|
80
|
+
|
81
|
+
ParseSession *m_session;
|
82
|
+
QString m_header;
|
83
|
+
|
84
|
+
bool createType;
|
85
|
+
bool createTypedef;
|
86
|
+
short inClass;
|
87
|
+
|
88
|
+
bool inTemplate;
|
89
|
+
bool isStatic;
|
90
|
+
bool isVirtual;
|
91
|
+
bool isExplicit;
|
92
|
+
bool hasInitializer;
|
93
|
+
|
94
|
+
Type currentType;
|
95
|
+
Type* currentTypeRef;
|
96
|
+
|
97
|
+
bool inMethod;
|
98
|
+
Method currentMethod;
|
99
|
+
|
100
|
+
Function currentFunction;
|
101
|
+
|
102
|
+
Enum currentEnum;
|
103
|
+
Enum* currentEnumRef;
|
104
|
+
|
105
|
+
Class::Kind kind;
|
106
|
+
QStack<Class*> klass;
|
107
|
+
QStack<Access> access;
|
108
|
+
QStack<bool> inSignals;
|
109
|
+
QStack<bool> inSlots;
|
110
|
+
|
111
|
+
QStack<QStringList> usingTypes;
|
112
|
+
QStack<QStringList> usingNamespaces;
|
113
|
+
|
114
|
+
QStringList nspace;
|
115
|
+
|
116
|
+
QStack<QList<QProperty> > q_properties;
|
117
|
+
};
|
118
|
+
|
119
|
+
#endif // PARSERVISITOR_H
|
@@ -1,205 +1,205 @@
|
|
1
|
-
/* This file is part of KDevelop
|
2
|
-
Copyright 2002-2005 Roberto Raggi <roberto@kdevelop.org>
|
3
|
-
|
4
|
-
This library is free software; you can redistribute it and/or
|
5
|
-
modify it under the terms of the GNU Library General Public
|
6
|
-
License version 2 as published by the Free Software Foundation.
|
7
|
-
|
8
|
-
This library is distributed in the hope that it will be useful,
|
9
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
-
Library General Public License for more details.
|
12
|
-
|
13
|
-
You should have received a copy of the GNU Library General Public License
|
14
|
-
along with this library; see the file COPYING.LIB. If not, write to
|
15
|
-
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
16
|
-
Boston, MA 02110-1301, USA.
|
17
|
-
*/
|
18
|
-
|
19
|
-
//krazy:excludeall=cpp
|
20
|
-
|
21
|
-
#include "name_compiler.h"
|
22
|
-
#include "type_compiler.h"
|
23
|
-
#include <lexer.h>
|
24
|
-
#include <symbol.h>
|
25
|
-
#include <parsesession.h>
|
26
|
-
#include <tokens.h>
|
27
|
-
#include "type_compiler.h"
|
28
|
-
|
29
|
-
#include <QtCore/qdebug.h>
|
30
|
-
|
31
|
-
///@todo this is very expensive
|
32
|
-
QString decode(ParseSession* session, AST* ast, bool without_spaces = false)
|
33
|
-
{
|
34
|
-
QString ret;
|
35
|
-
if( without_spaces ) {
|
36
|
-
//Decode operator-names without spaces for now, since we rely on it in other places.
|
37
|
-
///@todo change this, here and in all the places that rely on it. Operators should then by written like "operator [ ]"(space between each token)
|
38
|
-
for( size_t a = ast->start_token; a < ast->end_token; a++ ) {
|
39
|
-
ret += session->token_stream->token(a).symbolString();
|
40
|
-
}
|
41
|
-
} else {
|
42
|
-
for( size_t a = ast->start_token; a < ast->end_token; a++ ) {
|
43
|
-
ret += session->token_stream->token(a).symbolString() + ' ';
|
44
|
-
}
|
45
|
-
}
|
46
|
-
return ret;
|
47
|
-
}
|
48
|
-
|
49
|
-
/*uint parseConstVolatile(ParseSession* session, const ListNode<std::size_t> *cv)
|
50
|
-
{
|
51
|
-
uint ret = AbstractType::NoModifiers;
|
52
|
-
|
53
|
-
if (cv) {
|
54
|
-
const ListNode<std::size_t> *it = cv->toFront();
|
55
|
-
const ListNode<std::size_t> *end = it;
|
56
|
-
do {
|
57
|
-
int kind = session->token_stream->kind(it->element);
|
58
|
-
if (kind == Token_const)
|
59
|
-
ret |= AbstractType::ConstModifier;
|
60
|
-
else if (kind == Token_volatile)
|
61
|
-
ret |= AbstractType::VolatileModifier;
|
62
|
-
|
63
|
-
it = it->next;
|
64
|
-
} while (it != end);
|
65
|
-
}
|
66
|
-
|
67
|
-
return ret;
|
68
|
-
}*/
|
69
|
-
|
70
|
-
/*IndexedTypeIdentifier typeIdentifierFromTemplateArgument(ParseSession* session, TemplateArgumentAST *node)
|
71
|
-
{
|
72
|
-
IndexedTypeIdentifier id;
|
73
|
-
if(node->expression) {
|
74
|
-
id = IndexedTypeIdentifier(decode(session, node), true);
|
75
|
-
}else if(node->type_id) {
|
76
|
-
//Parse the pointer operators
|
77
|
-
TypeCompiler tc(session);
|
78
|
-
tc.run(node->type_id->type_specifier);
|
79
|
-
id = IndexedTypeIdentifier(tc.identifier());
|
80
|
-
//node->type_id->type_specifier->cv
|
81
|
-
|
82
|
-
if(node->type_id->type_specifier)
|
83
|
-
id.setIsConstant(parseConstVolatile(session, node->type_id->type_specifier->cv) & AbstractType::ConstModifier);
|
84
|
-
|
85
|
-
if(node->type_id->declarator && node->type_id->declarator->ptr_ops)
|
86
|
-
{
|
87
|
-
const ListNode<PtrOperatorAST*> *it = node->type_id->declarator->ptr_ops->toFront();
|
88
|
-
const ListNode<PtrOperatorAST*> *end = it; ///@todo check ordering, eventually walk the list in reversed order
|
89
|
-
do
|
90
|
-
{
|
91
|
-
if(it->element && it->element->op) { ///@todo What about ptr-to-member?
|
92
|
-
static IndexedString ref('&');
|
93
|
-
if( session->token_stream->token(it->element->op).symbol() == ref) {
|
94
|
-
//We're handling a 'reference'
|
95
|
-
id.setIsReference(true);
|
96
|
-
} else {
|
97
|
-
//We're handling a real pointer
|
98
|
-
id.setPointerDepth(id.pointerDepth()+1);
|
99
|
-
|
100
|
-
if(it->element->cv) {
|
101
|
-
id.setIsConstPointer(id.pointerDepth()-1, parseConstVolatile(session, it->element->cv) & AbstractType::ConstModifier);
|
102
|
-
}
|
103
|
-
}
|
104
|
-
}
|
105
|
-
it = it->next;
|
106
|
-
}
|
107
|
-
while (it != end);
|
108
|
-
}
|
109
|
-
}
|
110
|
-
return id;
|
111
|
-
}*/
|
112
|
-
|
113
|
-
NameCompiler::NameCompiler(ParseSession* session, GeneratorVisitor* visitor)
|
114
|
-
: m_session(session), m_visitor(visitor)
|
115
|
-
{
|
116
|
-
}
|
117
|
-
|
118
|
-
void NameCompiler::internal_run(AST *node)
|
119
|
-
{
|
120
|
-
m_name.clear();
|
121
|
-
m_castType = Type();
|
122
|
-
m_templateArgs.clear();
|
123
|
-
visit(node);
|
124
|
-
}
|
125
|
-
|
126
|
-
void NameCompiler::visitUnqualifiedName(UnqualifiedNameAST *node)
|
127
|
-
{
|
128
|
-
IndexedString tmp_name;
|
129
|
-
|
130
|
-
if (node->id)
|
131
|
-
tmp_name = m_session->token_stream->token(node->id).symbol();
|
132
|
-
|
133
|
-
if (node->tilde)
|
134
|
-
tmp_name = IndexedString('~' + tmp_name.byteArray());
|
135
|
-
|
136
|
-
if (OperatorFunctionIdAST *op_id = node->operator_id)
|
137
|
-
{
|
138
|
-
#if defined(__GNUC__)
|
139
|
-
#warning "NameCompiler::visitUnqualifiedName() -- implement me"
|
140
|
-
#endif
|
141
|
-
static QString operatorString("operator");
|
142
|
-
QString tmp = operatorString;
|
143
|
-
|
144
|
-
if (op_id->op && op_id->op->op) {
|
145
|
-
tmp += decode(m_session, op_id->op, true);
|
146
|
-
} else {
|
147
|
-
TypeCompiler tc(m_session, m_visitor);
|
148
|
-
tc.run(op_id->type_specifier);
|
149
|
-
tc.run(op_id->ptr_ops);
|
150
|
-
m_castType = tc.type();
|
151
|
-
tmp += " " + tc.type().toString();
|
152
|
-
}
|
153
|
-
|
154
|
-
tmp_name = IndexedString(tmp);
|
155
|
-
m_typeSpecifier = op_id->type_specifier;
|
156
|
-
}
|
157
|
-
|
158
|
-
m_currentIdentifier = tmp_name.str();
|
159
|
-
|
160
|
-
if (node->template_arguments)
|
161
|
-
{
|
162
|
-
visitNodes(this, node->template_arguments);
|
163
|
-
}/*else if(node->end_token == node->start_token + 3 && node->id == node->start_token && m_session->token_stream->token(node->id+1).symbol() == KDevelop::IndexedString('<')) {
|
164
|
-
///@todo Represent this nicer in the AST
|
165
|
-
///It's probably a type-specifier with instantiation of the default-parameter, like "Bla<>".
|
166
|
-
m_currentIdentifier.appendTemplateIdentifier( IndexedTypeIdentifier() );
|
167
|
-
}*/
|
168
|
-
|
169
|
-
m_name.push_back(m_currentIdentifier);
|
170
|
-
}
|
171
|
-
|
172
|
-
TypeSpecifierAST* NameCompiler::lastTypeSpecifier() const {
|
173
|
-
return m_typeSpecifier;
|
174
|
-
}
|
175
|
-
|
176
|
-
void NameCompiler::visitTemplateArgument(TemplateArgumentAST *node)
|
177
|
-
{
|
178
|
-
if (!node->type_id) {
|
179
|
-
QString ret;
|
180
|
-
for (int i = node->expression->start_token; i < node->expression->end_token; i++) {
|
181
|
-
ret.append(m_session->token_stream->token(i).symbolString());
|
182
|
-
}
|
183
|
-
// TODO: Better use a new struct here - expressions aren't really types.
|
184
|
-
m_templateArgs[m_name.count()] << Type(ret);
|
185
|
-
return;
|
186
|
-
}
|
187
|
-
TypeCompiler tc(m_session, m_visitor);
|
188
|
-
tc.run(node->type_id->type_specifier, node->type_id->declarator ? node->type_id->declarator : 0);
|
189
|
-
m_templateArgs[m_name.count()] << tc.type();
|
190
|
-
}
|
191
|
-
|
192
|
-
/*const QualifiedIdentifier& NameCompiler::identifier() const
|
193
|
-
{
|
194
|
-
return *_M_name;
|
195
|
-
}*/
|
196
|
-
|
197
|
-
void NameCompiler::run(NameAST *node/*, QualifiedIdentifier* target*/)
|
198
|
-
{
|
199
|
-
// if(target)
|
200
|
-
// _M_name = target;
|
201
|
-
// else
|
202
|
-
// _M_name = &m_localName;
|
203
|
-
|
204
|
-
m_typeSpecifier = 0; internal_run(node); /*if(node && node->global) _M_name->setExplicitlyGlobal( node->global );*/
|
205
|
-
}
|
1
|
+
/* This file is part of KDevelop
|
2
|
+
Copyright 2002-2005 Roberto Raggi <roberto@kdevelop.org>
|
3
|
+
|
4
|
+
This library is free software; you can redistribute it and/or
|
5
|
+
modify it under the terms of the GNU Library General Public
|
6
|
+
License version 2 as published by the Free Software Foundation.
|
7
|
+
|
8
|
+
This library is distributed in the hope that it will be useful,
|
9
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
+
Library General Public License for more details.
|
12
|
+
|
13
|
+
You should have received a copy of the GNU Library General Public License
|
14
|
+
along with this library; see the file COPYING.LIB. If not, write to
|
15
|
+
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
16
|
+
Boston, MA 02110-1301, USA.
|
17
|
+
*/
|
18
|
+
|
19
|
+
//krazy:excludeall=cpp
|
20
|
+
|
21
|
+
#include "name_compiler.h"
|
22
|
+
#include "type_compiler.h"
|
23
|
+
#include <lexer.h>
|
24
|
+
#include <symbol.h>
|
25
|
+
#include <parsesession.h>
|
26
|
+
#include <tokens.h>
|
27
|
+
#include "type_compiler.h"
|
28
|
+
|
29
|
+
#include <QtCore/qdebug.h>
|
30
|
+
|
31
|
+
///@todo this is very expensive
|
32
|
+
QString decode(ParseSession* session, AST* ast, bool without_spaces = false)
|
33
|
+
{
|
34
|
+
QString ret;
|
35
|
+
if( without_spaces ) {
|
36
|
+
//Decode operator-names without spaces for now, since we rely on it in other places.
|
37
|
+
///@todo change this, here and in all the places that rely on it. Operators should then by written like "operator [ ]"(space between each token)
|
38
|
+
for( size_t a = ast->start_token; a < ast->end_token; a++ ) {
|
39
|
+
ret += session->token_stream->token(a).symbolString();
|
40
|
+
}
|
41
|
+
} else {
|
42
|
+
for( size_t a = ast->start_token; a < ast->end_token; a++ ) {
|
43
|
+
ret += session->token_stream->token(a).symbolString() + ' ';
|
44
|
+
}
|
45
|
+
}
|
46
|
+
return ret;
|
47
|
+
}
|
48
|
+
|
49
|
+
/*uint parseConstVolatile(ParseSession* session, const ListNode<std::size_t> *cv)
|
50
|
+
{
|
51
|
+
uint ret = AbstractType::NoModifiers;
|
52
|
+
|
53
|
+
if (cv) {
|
54
|
+
const ListNode<std::size_t> *it = cv->toFront();
|
55
|
+
const ListNode<std::size_t> *end = it;
|
56
|
+
do {
|
57
|
+
int kind = session->token_stream->kind(it->element);
|
58
|
+
if (kind == Token_const)
|
59
|
+
ret |= AbstractType::ConstModifier;
|
60
|
+
else if (kind == Token_volatile)
|
61
|
+
ret |= AbstractType::VolatileModifier;
|
62
|
+
|
63
|
+
it = it->next;
|
64
|
+
} while (it != end);
|
65
|
+
}
|
66
|
+
|
67
|
+
return ret;
|
68
|
+
}*/
|
69
|
+
|
70
|
+
/*IndexedTypeIdentifier typeIdentifierFromTemplateArgument(ParseSession* session, TemplateArgumentAST *node)
|
71
|
+
{
|
72
|
+
IndexedTypeIdentifier id;
|
73
|
+
if(node->expression) {
|
74
|
+
id = IndexedTypeIdentifier(decode(session, node), true);
|
75
|
+
}else if(node->type_id) {
|
76
|
+
//Parse the pointer operators
|
77
|
+
TypeCompiler tc(session);
|
78
|
+
tc.run(node->type_id->type_specifier);
|
79
|
+
id = IndexedTypeIdentifier(tc.identifier());
|
80
|
+
//node->type_id->type_specifier->cv
|
81
|
+
|
82
|
+
if(node->type_id->type_specifier)
|
83
|
+
id.setIsConstant(parseConstVolatile(session, node->type_id->type_specifier->cv) & AbstractType::ConstModifier);
|
84
|
+
|
85
|
+
if(node->type_id->declarator && node->type_id->declarator->ptr_ops)
|
86
|
+
{
|
87
|
+
const ListNode<PtrOperatorAST*> *it = node->type_id->declarator->ptr_ops->toFront();
|
88
|
+
const ListNode<PtrOperatorAST*> *end = it; ///@todo check ordering, eventually walk the list in reversed order
|
89
|
+
do
|
90
|
+
{
|
91
|
+
if(it->element && it->element->op) { ///@todo What about ptr-to-member?
|
92
|
+
static IndexedString ref('&');
|
93
|
+
if( session->token_stream->token(it->element->op).symbol() == ref) {
|
94
|
+
//We're handling a 'reference'
|
95
|
+
id.setIsReference(true);
|
96
|
+
} else {
|
97
|
+
//We're handling a real pointer
|
98
|
+
id.setPointerDepth(id.pointerDepth()+1);
|
99
|
+
|
100
|
+
if(it->element->cv) {
|
101
|
+
id.setIsConstPointer(id.pointerDepth()-1, parseConstVolatile(session, it->element->cv) & AbstractType::ConstModifier);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
}
|
105
|
+
it = it->next;
|
106
|
+
}
|
107
|
+
while (it != end);
|
108
|
+
}
|
109
|
+
}
|
110
|
+
return id;
|
111
|
+
}*/
|
112
|
+
|
113
|
+
NameCompiler::NameCompiler(ParseSession* session, GeneratorVisitor* visitor)
|
114
|
+
: m_session(session), m_visitor(visitor)
|
115
|
+
{
|
116
|
+
}
|
117
|
+
|
118
|
+
void NameCompiler::internal_run(AST *node)
|
119
|
+
{
|
120
|
+
m_name.clear();
|
121
|
+
m_castType = Type();
|
122
|
+
m_templateArgs.clear();
|
123
|
+
visit(node);
|
124
|
+
}
|
125
|
+
|
126
|
+
void NameCompiler::visitUnqualifiedName(UnqualifiedNameAST *node)
|
127
|
+
{
|
128
|
+
IndexedString tmp_name;
|
129
|
+
|
130
|
+
if (node->id)
|
131
|
+
tmp_name = m_session->token_stream->token(node->id).symbol();
|
132
|
+
|
133
|
+
if (node->tilde)
|
134
|
+
tmp_name = IndexedString('~' + tmp_name.byteArray());
|
135
|
+
|
136
|
+
if (OperatorFunctionIdAST *op_id = node->operator_id)
|
137
|
+
{
|
138
|
+
#if defined(__GNUC__)
|
139
|
+
#warning "NameCompiler::visitUnqualifiedName() -- implement me"
|
140
|
+
#endif
|
141
|
+
static QString operatorString("operator");
|
142
|
+
QString tmp = operatorString;
|
143
|
+
|
144
|
+
if (op_id->op && op_id->op->op) {
|
145
|
+
tmp += decode(m_session, op_id->op, true);
|
146
|
+
} else {
|
147
|
+
TypeCompiler tc(m_session, m_visitor);
|
148
|
+
tc.run(op_id->type_specifier);
|
149
|
+
tc.run(op_id->ptr_ops);
|
150
|
+
m_castType = tc.type();
|
151
|
+
tmp += " " + tc.type().toString();
|
152
|
+
}
|
153
|
+
|
154
|
+
tmp_name = IndexedString(tmp);
|
155
|
+
m_typeSpecifier = op_id->type_specifier;
|
156
|
+
}
|
157
|
+
|
158
|
+
m_currentIdentifier = tmp_name.str();
|
159
|
+
|
160
|
+
if (node->template_arguments)
|
161
|
+
{
|
162
|
+
visitNodes(this, node->template_arguments);
|
163
|
+
}/*else if(node->end_token == node->start_token + 3 && node->id == node->start_token && m_session->token_stream->token(node->id+1).symbol() == KDevelop::IndexedString('<')) {
|
164
|
+
///@todo Represent this nicer in the AST
|
165
|
+
///It's probably a type-specifier with instantiation of the default-parameter, like "Bla<>".
|
166
|
+
m_currentIdentifier.appendTemplateIdentifier( IndexedTypeIdentifier() );
|
167
|
+
}*/
|
168
|
+
|
169
|
+
m_name.push_back(m_currentIdentifier);
|
170
|
+
}
|
171
|
+
|
172
|
+
TypeSpecifierAST* NameCompiler::lastTypeSpecifier() const {
|
173
|
+
return m_typeSpecifier;
|
174
|
+
}
|
175
|
+
|
176
|
+
void NameCompiler::visitTemplateArgument(TemplateArgumentAST *node)
|
177
|
+
{
|
178
|
+
if (!node->type_id) {
|
179
|
+
QString ret;
|
180
|
+
for (int i = node->expression->start_token; i < node->expression->end_token; i++) {
|
181
|
+
ret.append(m_session->token_stream->token(i).symbolString());
|
182
|
+
}
|
183
|
+
// TODO: Better use a new struct here - expressions aren't really types.
|
184
|
+
m_templateArgs[m_name.count()] << Type(ret);
|
185
|
+
return;
|
186
|
+
}
|
187
|
+
TypeCompiler tc(m_session, m_visitor);
|
188
|
+
tc.run(node->type_id->type_specifier, node->type_id->declarator ? node->type_id->declarator : 0);
|
189
|
+
m_templateArgs[m_name.count()] << tc.type();
|
190
|
+
}
|
191
|
+
|
192
|
+
/*const QualifiedIdentifier& NameCompiler::identifier() const
|
193
|
+
{
|
194
|
+
return *_M_name;
|
195
|
+
}*/
|
196
|
+
|
197
|
+
void NameCompiler::run(NameAST *node/*, QualifiedIdentifier* target*/)
|
198
|
+
{
|
199
|
+
// if(target)
|
200
|
+
// _M_name = target;
|
201
|
+
// else
|
202
|
+
// _M_name = &m_localName;
|
203
|
+
|
204
|
+
m_typeSpecifier = 0; internal_run(node); /*if(node && node->global) _M_name->setExplicitlyGlobal( node->global );*/
|
205
|
+
}
|