qtbindings 4.8.6.3 → 4.8.6.4
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 +5 -5
- data/COPYING.LIB.txt +510 -510
- data/COPYING.txt +286 -286
- data/KNOWN_ISSUES.txt +17 -17
- 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 +123 -124
- data/examples/tutorial/t11/lcdrange.rb +45 -45
- data/examples/tutorial/t11/t11.rb +65 -65
- data/examples/tutorial/t12/cannon.rb +157 -158
- data/examples/tutorial/t12/lcdrange.rb +58 -59
- data/examples/tutorial/t12/t12.rb +65 -66
- data/examples/tutorial/t13/cannon.rb +206 -208
- data/examples/tutorial/t13/gamebrd.rb +112 -113
- data/examples/tutorial/t13/lcdrange.rb +59 -60
- data/examples/tutorial/t13/t13.rb +11 -11
- data/examples/tutorial/t14/cannon.rb +262 -263
- data/examples/tutorial/t14/gamebrd.rb +122 -123
- data/examples/tutorial/t14/lcdrange.rb +61 -63
- data/examples/tutorial/t14/t14.rb +11 -11
- data/examples/tutorial/t2/t2.rb +16 -16
- data/examples/tutorial/t3/t3.rb +17 -18
- data/examples/tutorial/t4/t4.rb +23 -25
- data/examples/tutorial/t5/t5.rb +35 -37
- data/examples/tutorial/t6/t6.rb +48 -52
- data/examples/tutorial/t7/lcdrange.rb +32 -32
- data/examples/tutorial/t7/t7.rb +40 -42
- data/examples/tutorial/t8/cannon.rb +37 -38
- data/examples/tutorial/t8/lcdrange.rb +45 -45
- data/examples/tutorial/t8/t8.rb +43 -43
- data/examples/tutorial/t9/cannon.rb +44 -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/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/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 +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/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/lib/Qt.rb +1 -1
- data/lib/Qt4.rb +119 -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
- metadata +6 -7
|
@@ -1,308 +1,308 @@
|
|
|
1
|
-
/* This file is part of KDevelop
|
|
2
|
-
Copyright 2002-2005 Roberto Raggi <roberto@kdevelop.org>
|
|
3
|
-
Copyright 2007-2008 David Nolden <david.nolden.kdevelop@art-master.de>
|
|
4
|
-
|
|
5
|
-
This library is free software; you can redistribute it and/or
|
|
6
|
-
modify it under the terms of the GNU Library General Public
|
|
7
|
-
License version 2 as published by the Free Software Foundation.
|
|
8
|
-
|
|
9
|
-
This library 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 GNU
|
|
12
|
-
Library General Public License for more details.
|
|
13
|
-
|
|
14
|
-
You should have received a copy of the GNU Library General Public License
|
|
15
|
-
along with this library; see the file COPYING.LIB. If not, write to
|
|
16
|
-
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
17
|
-
Boston, MA 02110-1301, USA.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
#ifndef LEXER_H
|
|
21
|
-
#define LEXER_H
|
|
22
|
-
|
|
23
|
-
#include "cppparser_export.h"
|
|
24
|
-
#include "symbol.h"
|
|
25
|
-
#include <QtCore/QString>
|
|
26
|
-
#include <cstdlib>
|
|
27
|
-
#include "indexedstring.h"
|
|
28
|
-
#include "problem.h"
|
|
29
|
-
|
|
30
|
-
struct NameSymbol;
|
|
31
|
-
class Lexer;
|
|
32
|
-
class Control;
|
|
33
|
-
class ParseSession;
|
|
34
|
-
|
|
35
|
-
typedef void (Lexer::*scan_fun_ptr)();
|
|
36
|
-
|
|
37
|
-
/**Token.*/
|
|
38
|
-
class CPPPARSER_EXPORT Token
|
|
39
|
-
{
|
|
40
|
-
public:
|
|
41
|
-
///kind of the token @see TOKEN_KIND enum reference.
|
|
42
|
-
int kind;
|
|
43
|
-
///position in the preprocessed buffer
|
|
44
|
-
std::size_t position;
|
|
45
|
-
///size of the token in the preprocessed buffer. Do not confuse this with symbolLength.
|
|
46
|
-
std::size_t size;
|
|
47
|
-
///pointer to the parse session.
|
|
48
|
-
const ParseSession* session;
|
|
49
|
-
|
|
50
|
-
//Symbol associated to the token. This only works if this is a simple symbol
|
|
51
|
-
//only consisting of one identifier(not comments), does not work for operators like "->" or numbers like "50"
|
|
52
|
-
IndexedString symbol() const;
|
|
53
|
-
|
|
54
|
-
//This always works, but is expensive
|
|
55
|
-
QString symbolString() const;
|
|
56
|
-
QByteArray symbolByteArray() const;
|
|
57
|
-
|
|
58
|
-
uint symbolLength() const;
|
|
59
|
-
|
|
60
|
-
///@todo adymo: find out what @p right_brace is
|
|
61
|
-
union
|
|
62
|
-
{
|
|
63
|
-
//const NameSymbol *symbol;
|
|
64
|
-
std::size_t right_brace;
|
|
65
|
-
} extra;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
/**Stream of tokens found by lexer.
|
|
69
|
-
Internally works like an array of @ref Token continuosly allocated.
|
|
70
|
-
All tokens are destructed when this stream is deleted.
|
|
71
|
-
|
|
72
|
-
The stream has a "cursor" which is simply an integer which defines
|
|
73
|
-
the offset (index) of the token currently "observed" from the beginning of
|
|
74
|
-
the stream.*/
|
|
75
|
-
class CPPPARSER_EXPORT TokenStream
|
|
76
|
-
{
|
|
77
|
-
private:
|
|
78
|
-
TokenStream(const TokenStream &);
|
|
79
|
-
void operator = (const TokenStream &);
|
|
80
|
-
|
|
81
|
-
public:
|
|
82
|
-
/**Creates a token stream with the default size of 1024 tokens.*/
|
|
83
|
-
inline TokenStream(std::size_t size = 1024)
|
|
84
|
-
: tokens(0),
|
|
85
|
-
index(0),
|
|
86
|
-
token_count(0)
|
|
87
|
-
{
|
|
88
|
-
resize(size);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
inline ~TokenStream()
|
|
92
|
-
{ ::free(tokens); }
|
|
93
|
-
|
|
94
|
-
/**@return the size of the token stream.*/
|
|
95
|
-
inline std::size_t size() const
|
|
96
|
-
{ return token_count; }
|
|
97
|
-
|
|
98
|
-
/**@return the "cursor" - the offset (index) of the token
|
|
99
|
-
currently "observed" from the beginning of the stream.*/
|
|
100
|
-
inline std::size_t cursor() const
|
|
101
|
-
{ return index; }
|
|
102
|
-
|
|
103
|
-
/**Sets the cursor to the position @p i.*/
|
|
104
|
-
inline void rewind(int i)
|
|
105
|
-
{ index = i; }
|
|
106
|
-
|
|
107
|
-
/**Resizes the token stream.*/
|
|
108
|
-
void resize(std::size_t size)
|
|
109
|
-
{
|
|
110
|
-
Q_ASSERT(size > 0);
|
|
111
|
-
tokens = (Token*) ::realloc(tokens, sizeof(Token) * size);
|
|
112
|
-
token_count = size;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**Updates the cursor position to point to the next token and returns
|
|
116
|
-
the cursor.*/
|
|
117
|
-
inline std::size_t nextToken()
|
|
118
|
-
{ return index++; }
|
|
119
|
-
|
|
120
|
-
/**@return the kind of the next (LA) token in the stream.*/
|
|
121
|
-
inline int lookAhead(std::size_t i = 0) const
|
|
122
|
-
{ return tokens[index + i].kind; }
|
|
123
|
-
|
|
124
|
-
/**@return the kind of the current token in the stream.*/
|
|
125
|
-
inline int kind(std::size_t i) const
|
|
126
|
-
{ return tokens[i].kind; }
|
|
127
|
-
|
|
128
|
-
/**@return the position of the current token in the c++ source buffer.*/
|
|
129
|
-
inline std::size_t position(std::size_t i) const
|
|
130
|
-
{ return tokens[i].position; }
|
|
131
|
-
|
|
132
|
-
/**@return the name symbol of the current token.*/
|
|
133
|
-
//inline const NameSymbol *symbol(std::size_t i) const
|
|
134
|
-
//{ return tokens[i].extra.symbol; }
|
|
135
|
-
|
|
136
|
-
/**@return the position of the matching right brace in the
|
|
137
|
-
c++ source buffer.
|
|
138
|
-
@todo this doesn't seem to work as the lexer does not provide this
|
|
139
|
-
information at the moment.*/
|
|
140
|
-
inline std::size_t matchingBrace(std::size_t i) const
|
|
141
|
-
{ return tokens[i].extra.right_brace; }
|
|
142
|
-
|
|
143
|
-
/**@return the token at position @p index.*/
|
|
144
|
-
inline Token &operator[](int index)
|
|
145
|
-
{ Q_ASSERT(index >= 0 && index < (int)token_count); return tokens[index]; }
|
|
146
|
-
|
|
147
|
-
/**@return the token at position @p index.*/
|
|
148
|
-
inline const Token &token(int index) const
|
|
149
|
-
{ return tokens[index]; }
|
|
150
|
-
|
|
151
|
-
private:
|
|
152
|
-
Token *tokens;
|
|
153
|
-
std::size_t index;
|
|
154
|
-
std::size_t token_count;
|
|
155
|
-
|
|
156
|
-
private:
|
|
157
|
-
friend class Lexer;
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
/**C++ Lexer.*/
|
|
161
|
-
class CPPPARSER_EXPORT Lexer
|
|
162
|
-
{
|
|
163
|
-
public:
|
|
164
|
-
/**
|
|
165
|
-
* Constructor.
|
|
166
|
-
*
|
|
167
|
-
* \param token_stream Provides a stream of tokens to the lexer.
|
|
168
|
-
* \param location_table a table which will be filled with non-preprocessed line -> offset values
|
|
169
|
-
* \param line_table a table which will be filled with (non-preproccessed line which contains a preprocessor line) -> offset values
|
|
170
|
-
*/
|
|
171
|
-
Lexer(Control *control);
|
|
172
|
-
|
|
173
|
-
/**Finds tokens in the @p contents buffer and fills the @ref token_stream.*/
|
|
174
|
-
void tokenize(ParseSession* session);
|
|
175
|
-
|
|
176
|
-
ParseSession* session;
|
|
177
|
-
|
|
178
|
-
private:
|
|
179
|
-
void skipComment();
|
|
180
|
-
/**Fills the scan table with method pointers.*/
|
|
181
|
-
void initialize_scan_table();
|
|
182
|
-
void scan_newline();
|
|
183
|
-
void scan_white_spaces();
|
|
184
|
-
void scan_identifier_or_keyword();
|
|
185
|
-
void scan_identifier_or_literal();
|
|
186
|
-
void scan_int_constant();
|
|
187
|
-
void scan_char_constant();
|
|
188
|
-
void scan_string_constant();
|
|
189
|
-
void scan_invalid_input();
|
|
190
|
-
void scan_preprocessor();
|
|
191
|
-
|
|
192
|
-
// keywords
|
|
193
|
-
void scanKeyword0();
|
|
194
|
-
void scanKeyword2();
|
|
195
|
-
void scanKeyword3();
|
|
196
|
-
void scanKeyword4();
|
|
197
|
-
void scanKeyword5();
|
|
198
|
-
void scanKeyword6();
|
|
199
|
-
void scanKeyword7();
|
|
200
|
-
void scanKeyword8();
|
|
201
|
-
void scanKeyword9();
|
|
202
|
-
void scanKeyword10();
|
|
203
|
-
void scanKeyword11();
|
|
204
|
-
void scanKeyword12();
|
|
205
|
-
void scanKeyword13();
|
|
206
|
-
void scanKeyword14();
|
|
207
|
-
void scanKeyword16();
|
|
208
|
-
|
|
209
|
-
// operators
|
|
210
|
-
void scan_not();
|
|
211
|
-
void scan_remainder();
|
|
212
|
-
void scan_and();
|
|
213
|
-
void scan_left_paren();
|
|
214
|
-
void scan_right_paren();
|
|
215
|
-
void scan_star();
|
|
216
|
-
void scan_plus();
|
|
217
|
-
void scan_comma();
|
|
218
|
-
void scan_minus();
|
|
219
|
-
void scan_dot();
|
|
220
|
-
void scan_divide();
|
|
221
|
-
void scan_colon();
|
|
222
|
-
void scan_semicolon();
|
|
223
|
-
void scan_less();
|
|
224
|
-
void scan_equal();
|
|
225
|
-
void scan_greater();
|
|
226
|
-
void scan_question();
|
|
227
|
-
void scan_left_bracket();
|
|
228
|
-
void scan_right_bracket();
|
|
229
|
-
void scan_xor();
|
|
230
|
-
void scan_left_brace();
|
|
231
|
-
void scan_or();
|
|
232
|
-
void scan_right_brace();
|
|
233
|
-
void scan_tilde();
|
|
234
|
-
void scan_EOF();
|
|
235
|
-
|
|
236
|
-
Problem *createProblem() const;
|
|
237
|
-
|
|
238
|
-
private:
|
|
239
|
-
Control *control;
|
|
240
|
-
|
|
241
|
-
struct SpecialCursor {
|
|
242
|
-
bool operator==(uint index) const {
|
|
243
|
-
return *current == index;
|
|
244
|
-
}
|
|
245
|
-
bool operator==(char character) const {
|
|
246
|
-
return *current == (character | 0xffff0000);
|
|
247
|
-
}
|
|
248
|
-
bool isChar() const {
|
|
249
|
-
return ((*current) & 0xffff0000) == 0xffff0000;
|
|
250
|
-
}
|
|
251
|
-
inline char operator*() const {
|
|
252
|
-
if(isChar())
|
|
253
|
-
return (char)*current;
|
|
254
|
-
else
|
|
255
|
-
return 'a'; //Return a valid character, because the identifiers created by the preprocessor are alpha-numerical
|
|
256
|
-
}
|
|
257
|
-
void operator++() {
|
|
258
|
-
++current;
|
|
259
|
-
}
|
|
260
|
-
void operator+=(int offset) {
|
|
261
|
-
current += offset;
|
|
262
|
-
}
|
|
263
|
-
bool operator !=(const SpecialCursor& rhs) const {
|
|
264
|
-
return current != rhs.current;
|
|
265
|
-
}
|
|
266
|
-
bool operator !=(const uint* rhs) const {
|
|
267
|
-
return current != rhs;
|
|
268
|
-
}
|
|
269
|
-
void operator--() {
|
|
270
|
-
--current;
|
|
271
|
-
}
|
|
272
|
-
bool operator<(const uint* end) const {
|
|
273
|
-
return current < end;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
int operator -(const SpecialCursor& rhs) const {
|
|
277
|
-
return (((char*)current) - ((char*)rhs.current)) / sizeof(uint);
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
uint offsetIn(const uint* base) const {
|
|
281
|
-
return ((char*)current - (char*)base) / sizeof(uint);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
SpecialCursor operator +(int offset) {
|
|
285
|
-
SpecialCursor ret(*this);
|
|
286
|
-
ret.current += offset;
|
|
287
|
-
return ret;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
uint* current;
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
SpecialCursor cursor;
|
|
294
|
-
const uint* endCursor;
|
|
295
|
-
std::size_t index;
|
|
296
|
-
|
|
297
|
-
bool m_leaveSize; //Marks the current token that its size should not be automatically set
|
|
298
|
-
bool m_canMergeComment; //Whether we may append new comments to the last encountered one
|
|
299
|
-
bool m_firstInLine; //Whether the next token is the first one in a line
|
|
300
|
-
|
|
301
|
-
///scan table contains pointers to the methods to scan for various token types
|
|
302
|
-
static scan_fun_ptr s_scan_table[];
|
|
303
|
-
static scan_fun_ptr s_scan_keyword_table[];
|
|
304
|
-
static bool s_initialized;
|
|
305
|
-
};
|
|
306
|
-
|
|
307
|
-
#endif // LEXER_H
|
|
308
|
-
|
|
1
|
+
/* This file is part of KDevelop
|
|
2
|
+
Copyright 2002-2005 Roberto Raggi <roberto@kdevelop.org>
|
|
3
|
+
Copyright 2007-2008 David Nolden <david.nolden.kdevelop@art-master.de>
|
|
4
|
+
|
|
5
|
+
This library is free software; you can redistribute it and/or
|
|
6
|
+
modify it under the terms of the GNU Library General Public
|
|
7
|
+
License version 2 as published by the Free Software Foundation.
|
|
8
|
+
|
|
9
|
+
This library 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 GNU
|
|
12
|
+
Library General Public License for more details.
|
|
13
|
+
|
|
14
|
+
You should have received a copy of the GNU Library General Public License
|
|
15
|
+
along with this library; see the file COPYING.LIB. If not, write to
|
|
16
|
+
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
17
|
+
Boston, MA 02110-1301, USA.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
#ifndef LEXER_H
|
|
21
|
+
#define LEXER_H
|
|
22
|
+
|
|
23
|
+
#include "cppparser_export.h"
|
|
24
|
+
#include "symbol.h"
|
|
25
|
+
#include <QtCore/QString>
|
|
26
|
+
#include <cstdlib>
|
|
27
|
+
#include "indexedstring.h"
|
|
28
|
+
#include "problem.h"
|
|
29
|
+
|
|
30
|
+
struct NameSymbol;
|
|
31
|
+
class Lexer;
|
|
32
|
+
class Control;
|
|
33
|
+
class ParseSession;
|
|
34
|
+
|
|
35
|
+
typedef void (Lexer::*scan_fun_ptr)();
|
|
36
|
+
|
|
37
|
+
/**Token.*/
|
|
38
|
+
class CPPPARSER_EXPORT Token
|
|
39
|
+
{
|
|
40
|
+
public:
|
|
41
|
+
///kind of the token @see TOKEN_KIND enum reference.
|
|
42
|
+
int kind;
|
|
43
|
+
///position in the preprocessed buffer
|
|
44
|
+
std::size_t position;
|
|
45
|
+
///size of the token in the preprocessed buffer. Do not confuse this with symbolLength.
|
|
46
|
+
std::size_t size;
|
|
47
|
+
///pointer to the parse session.
|
|
48
|
+
const ParseSession* session;
|
|
49
|
+
|
|
50
|
+
//Symbol associated to the token. This only works if this is a simple symbol
|
|
51
|
+
//only consisting of one identifier(not comments), does not work for operators like "->" or numbers like "50"
|
|
52
|
+
IndexedString symbol() const;
|
|
53
|
+
|
|
54
|
+
//This always works, but is expensive
|
|
55
|
+
QString symbolString() const;
|
|
56
|
+
QByteArray symbolByteArray() const;
|
|
57
|
+
|
|
58
|
+
uint symbolLength() const;
|
|
59
|
+
|
|
60
|
+
///@todo adymo: find out what @p right_brace is
|
|
61
|
+
union
|
|
62
|
+
{
|
|
63
|
+
//const NameSymbol *symbol;
|
|
64
|
+
std::size_t right_brace;
|
|
65
|
+
} extra;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**Stream of tokens found by lexer.
|
|
69
|
+
Internally works like an array of @ref Token continuosly allocated.
|
|
70
|
+
All tokens are destructed when this stream is deleted.
|
|
71
|
+
|
|
72
|
+
The stream has a "cursor" which is simply an integer which defines
|
|
73
|
+
the offset (index) of the token currently "observed" from the beginning of
|
|
74
|
+
the stream.*/
|
|
75
|
+
class CPPPARSER_EXPORT TokenStream
|
|
76
|
+
{
|
|
77
|
+
private:
|
|
78
|
+
TokenStream(const TokenStream &);
|
|
79
|
+
void operator = (const TokenStream &);
|
|
80
|
+
|
|
81
|
+
public:
|
|
82
|
+
/**Creates a token stream with the default size of 1024 tokens.*/
|
|
83
|
+
inline TokenStream(std::size_t size = 1024)
|
|
84
|
+
: tokens(0),
|
|
85
|
+
index(0),
|
|
86
|
+
token_count(0)
|
|
87
|
+
{
|
|
88
|
+
resize(size);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
inline ~TokenStream()
|
|
92
|
+
{ ::free(tokens); }
|
|
93
|
+
|
|
94
|
+
/**@return the size of the token stream.*/
|
|
95
|
+
inline std::size_t size() const
|
|
96
|
+
{ return token_count; }
|
|
97
|
+
|
|
98
|
+
/**@return the "cursor" - the offset (index) of the token
|
|
99
|
+
currently "observed" from the beginning of the stream.*/
|
|
100
|
+
inline std::size_t cursor() const
|
|
101
|
+
{ return index; }
|
|
102
|
+
|
|
103
|
+
/**Sets the cursor to the position @p i.*/
|
|
104
|
+
inline void rewind(int i)
|
|
105
|
+
{ index = i; }
|
|
106
|
+
|
|
107
|
+
/**Resizes the token stream.*/
|
|
108
|
+
void resize(std::size_t size)
|
|
109
|
+
{
|
|
110
|
+
Q_ASSERT(size > 0);
|
|
111
|
+
tokens = (Token*) ::realloc(tokens, sizeof(Token) * size);
|
|
112
|
+
token_count = size;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**Updates the cursor position to point to the next token and returns
|
|
116
|
+
the cursor.*/
|
|
117
|
+
inline std::size_t nextToken()
|
|
118
|
+
{ return index++; }
|
|
119
|
+
|
|
120
|
+
/**@return the kind of the next (LA) token in the stream.*/
|
|
121
|
+
inline int lookAhead(std::size_t i = 0) const
|
|
122
|
+
{ return tokens[index + i].kind; }
|
|
123
|
+
|
|
124
|
+
/**@return the kind of the current token in the stream.*/
|
|
125
|
+
inline int kind(std::size_t i) const
|
|
126
|
+
{ return tokens[i].kind; }
|
|
127
|
+
|
|
128
|
+
/**@return the position of the current token in the c++ source buffer.*/
|
|
129
|
+
inline std::size_t position(std::size_t i) const
|
|
130
|
+
{ return tokens[i].position; }
|
|
131
|
+
|
|
132
|
+
/**@return the name symbol of the current token.*/
|
|
133
|
+
//inline const NameSymbol *symbol(std::size_t i) const
|
|
134
|
+
//{ return tokens[i].extra.symbol; }
|
|
135
|
+
|
|
136
|
+
/**@return the position of the matching right brace in the
|
|
137
|
+
c++ source buffer.
|
|
138
|
+
@todo this doesn't seem to work as the lexer does not provide this
|
|
139
|
+
information at the moment.*/
|
|
140
|
+
inline std::size_t matchingBrace(std::size_t i) const
|
|
141
|
+
{ return tokens[i].extra.right_brace; }
|
|
142
|
+
|
|
143
|
+
/**@return the token at position @p index.*/
|
|
144
|
+
inline Token &operator[](int index)
|
|
145
|
+
{ Q_ASSERT(index >= 0 && index < (int)token_count); return tokens[index]; }
|
|
146
|
+
|
|
147
|
+
/**@return the token at position @p index.*/
|
|
148
|
+
inline const Token &token(int index) const
|
|
149
|
+
{ return tokens[index]; }
|
|
150
|
+
|
|
151
|
+
private:
|
|
152
|
+
Token *tokens;
|
|
153
|
+
std::size_t index;
|
|
154
|
+
std::size_t token_count;
|
|
155
|
+
|
|
156
|
+
private:
|
|
157
|
+
friend class Lexer;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/**C++ Lexer.*/
|
|
161
|
+
class CPPPARSER_EXPORT Lexer
|
|
162
|
+
{
|
|
163
|
+
public:
|
|
164
|
+
/**
|
|
165
|
+
* Constructor.
|
|
166
|
+
*
|
|
167
|
+
* \param token_stream Provides a stream of tokens to the lexer.
|
|
168
|
+
* \param location_table a table which will be filled with non-preprocessed line -> offset values
|
|
169
|
+
* \param line_table a table which will be filled with (non-preproccessed line which contains a preprocessor line) -> offset values
|
|
170
|
+
*/
|
|
171
|
+
Lexer(Control *control);
|
|
172
|
+
|
|
173
|
+
/**Finds tokens in the @p contents buffer and fills the @ref token_stream.*/
|
|
174
|
+
void tokenize(ParseSession* session);
|
|
175
|
+
|
|
176
|
+
ParseSession* session;
|
|
177
|
+
|
|
178
|
+
private:
|
|
179
|
+
void skipComment();
|
|
180
|
+
/**Fills the scan table with method pointers.*/
|
|
181
|
+
void initialize_scan_table();
|
|
182
|
+
void scan_newline();
|
|
183
|
+
void scan_white_spaces();
|
|
184
|
+
void scan_identifier_or_keyword();
|
|
185
|
+
void scan_identifier_or_literal();
|
|
186
|
+
void scan_int_constant();
|
|
187
|
+
void scan_char_constant();
|
|
188
|
+
void scan_string_constant();
|
|
189
|
+
void scan_invalid_input();
|
|
190
|
+
void scan_preprocessor();
|
|
191
|
+
|
|
192
|
+
// keywords
|
|
193
|
+
void scanKeyword0();
|
|
194
|
+
void scanKeyword2();
|
|
195
|
+
void scanKeyword3();
|
|
196
|
+
void scanKeyword4();
|
|
197
|
+
void scanKeyword5();
|
|
198
|
+
void scanKeyword6();
|
|
199
|
+
void scanKeyword7();
|
|
200
|
+
void scanKeyword8();
|
|
201
|
+
void scanKeyword9();
|
|
202
|
+
void scanKeyword10();
|
|
203
|
+
void scanKeyword11();
|
|
204
|
+
void scanKeyword12();
|
|
205
|
+
void scanKeyword13();
|
|
206
|
+
void scanKeyword14();
|
|
207
|
+
void scanKeyword16();
|
|
208
|
+
|
|
209
|
+
// operators
|
|
210
|
+
void scan_not();
|
|
211
|
+
void scan_remainder();
|
|
212
|
+
void scan_and();
|
|
213
|
+
void scan_left_paren();
|
|
214
|
+
void scan_right_paren();
|
|
215
|
+
void scan_star();
|
|
216
|
+
void scan_plus();
|
|
217
|
+
void scan_comma();
|
|
218
|
+
void scan_minus();
|
|
219
|
+
void scan_dot();
|
|
220
|
+
void scan_divide();
|
|
221
|
+
void scan_colon();
|
|
222
|
+
void scan_semicolon();
|
|
223
|
+
void scan_less();
|
|
224
|
+
void scan_equal();
|
|
225
|
+
void scan_greater();
|
|
226
|
+
void scan_question();
|
|
227
|
+
void scan_left_bracket();
|
|
228
|
+
void scan_right_bracket();
|
|
229
|
+
void scan_xor();
|
|
230
|
+
void scan_left_brace();
|
|
231
|
+
void scan_or();
|
|
232
|
+
void scan_right_brace();
|
|
233
|
+
void scan_tilde();
|
|
234
|
+
void scan_EOF();
|
|
235
|
+
|
|
236
|
+
Problem *createProblem() const;
|
|
237
|
+
|
|
238
|
+
private:
|
|
239
|
+
Control *control;
|
|
240
|
+
|
|
241
|
+
struct SpecialCursor {
|
|
242
|
+
bool operator==(uint index) const {
|
|
243
|
+
return *current == index;
|
|
244
|
+
}
|
|
245
|
+
bool operator==(char character) const {
|
|
246
|
+
return *current == (character | 0xffff0000);
|
|
247
|
+
}
|
|
248
|
+
bool isChar() const {
|
|
249
|
+
return ((*current) & 0xffff0000) == 0xffff0000;
|
|
250
|
+
}
|
|
251
|
+
inline char operator*() const {
|
|
252
|
+
if(isChar())
|
|
253
|
+
return (char)*current;
|
|
254
|
+
else
|
|
255
|
+
return 'a'; //Return a valid character, because the identifiers created by the preprocessor are alpha-numerical
|
|
256
|
+
}
|
|
257
|
+
void operator++() {
|
|
258
|
+
++current;
|
|
259
|
+
}
|
|
260
|
+
void operator+=(int offset) {
|
|
261
|
+
current += offset;
|
|
262
|
+
}
|
|
263
|
+
bool operator !=(const SpecialCursor& rhs) const {
|
|
264
|
+
return current != rhs.current;
|
|
265
|
+
}
|
|
266
|
+
bool operator !=(const uint* rhs) const {
|
|
267
|
+
return current != rhs;
|
|
268
|
+
}
|
|
269
|
+
void operator--() {
|
|
270
|
+
--current;
|
|
271
|
+
}
|
|
272
|
+
bool operator<(const uint* end) const {
|
|
273
|
+
return current < end;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
int operator -(const SpecialCursor& rhs) const {
|
|
277
|
+
return (((char*)current) - ((char*)rhs.current)) / sizeof(uint);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
uint offsetIn(const uint* base) const {
|
|
281
|
+
return ((char*)current - (char*)base) / sizeof(uint);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
SpecialCursor operator +(int offset) {
|
|
285
|
+
SpecialCursor ret(*this);
|
|
286
|
+
ret.current += offset;
|
|
287
|
+
return ret;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
uint* current;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
SpecialCursor cursor;
|
|
294
|
+
const uint* endCursor;
|
|
295
|
+
std::size_t index;
|
|
296
|
+
|
|
297
|
+
bool m_leaveSize; //Marks the current token that its size should not be automatically set
|
|
298
|
+
bool m_canMergeComment; //Whether we may append new comments to the last encountered one
|
|
299
|
+
bool m_firstInLine; //Whether the next token is the first one in a line
|
|
300
|
+
|
|
301
|
+
///scan table contains pointers to the methods to scan for various token types
|
|
302
|
+
static scan_fun_ptr s_scan_table[];
|
|
303
|
+
static scan_fun_ptr s_scan_keyword_table[];
|
|
304
|
+
static bool s_initialized;
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
#endif // LEXER_H
|
|
308
|
+
|