• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • kio/kio
 

kio/kio

  • kio
  • kio
ktraderparse.cpp
1 /* This file is part of the KDE project
2  Copyright (C) 1998, 1999 Torben Weis <weis@kde.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 as published by the Free Software Foundation; either
7  version 2 of the License, or (at your option) any later version.
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 #include <assert.h>
21 #include <stdlib.h>
22 
23 // TODO: Torben: On error free memory!
24 
25 extern "C"
26 {
27 #include "ktraderparse.h"
28 }
29 
30 #include "ktraderparsetree.h"
31 #include <kdebug.h>
32 
33 using namespace KIO;
34 
35 static ParseTreeBase::Ptr *pTree = 0;
36 static const char* sCode = 0;
37 
38 ParseTreeBase::Ptr KIO::parseConstraints( const TQString& _constr )
39 {
40  TQCString str = _constr.utf8();
41  sCode = str.data();
42  KTraderParse_mainParse( sCode );
43  sCode = 0;
44  assert( pTree );
45  return *pTree;
46 }
47 
48 ParseTreeBase::Ptr KIO::parsePreferences( const TQString& _prefs )
49 {
50  TQCString str = _prefs.utf8();
51  sCode = str.data();
52  KTraderParse_mainParse( sCode );
53  sCode = 0;
54  assert( pTree );
55  return *pTree;
56 }
57 
58 void KTraderParse_setParseTree( void *_ptr1 )
59 {
60  if ( !pTree )
61  pTree = new ParseTreeBase::Ptr; // ### leak; should use KStaticDeleter
62  *pTree = static_cast<ParseTreeBase*>( _ptr1 );
63 }
64 
65 
66 void KTraderParse_error( const char* err )
67 {
68  kdWarning(7014) << "Parsing '" << sCode << "' gave " << err << endl;
69 }
70 
71 void* KTraderParse_newOR( void *_ptr1, void *_ptr2 )
72 {
73  return new ParseTreeOR( (ParseTreeBase*)_ptr1, (ParseTreeBase*)_ptr2 );
74 }
75 
76 void* KTraderParse_newAND( void *_ptr1, void *_ptr2 )
77 {
78  return new ParseTreeAND( (ParseTreeBase*)_ptr1, (ParseTreeBase*)_ptr2 );
79 }
80 
81 void* KTraderParse_newCMP( void *_ptr1, void *_ptr2, int _i )
82 {
83  return new ParseTreeCMP( (ParseTreeBase*)_ptr1, (ParseTreeBase*)_ptr2, _i );
84 }
85 
86 void* KTraderParse_newIN( void *_ptr1, void *_ptr2 )
87 {
88  return new ParseTreeIN( (ParseTreeBase*)_ptr1, (ParseTreeBase*)_ptr2 );
89 }
90 
91 void* KTraderParse_newMATCH( void *_ptr1, void *_ptr2 )
92 {
93  return new ParseTreeMATCH( (ParseTreeBase*)_ptr1, (ParseTreeBase*)_ptr2 );
94 }
95 
96 void* KTraderParse_newCALC( void *_ptr1, void *_ptr2, int _i )
97 {
98  return new ParseTreeCALC( (ParseTreeBase*)_ptr1, (ParseTreeBase*)_ptr2, _i );
99 }
100 
101 void* KTraderParse_newBRACKETS( void *_ptr1 )
102 {
103  return new ParseTreeBRACKETS( (ParseTreeBase*)_ptr1 );
104 }
105 
106 void* KTraderParse_newNOT( void *_ptr1 )
107 {
108  return new ParseTreeNOT( (ParseTreeBase*)_ptr1 );
109 }
110 
111 void* KTraderParse_newEXIST( char *_ptr1 )
112 {
113  ParseTreeEXIST *t = new ParseTreeEXIST( _ptr1 );
114  free(_ptr1);
115  return t;
116 }
117 
118 void* KTraderParse_newID( char *_ptr1 )
119 {
120  ParseTreeID *t = new ParseTreeID( _ptr1 );
121  free(_ptr1);
122  return t;
123 }
124 
125 void* KTraderParse_newSTRING( char *_ptr1 )
126 {
127  ParseTreeSTRING *t = new ParseTreeSTRING( _ptr1 );
128  free(_ptr1);
129  return t;
130 }
131 
132 void* KTraderParse_newNUM( int _i )
133 {
134  return new ParseTreeNUM( _i );
135 }
136 
137 void* KTraderParse_newFLOAT( float _f )
138 {
139  return new ParseTreeDOUBLE( _f );
140 }
141 
142 void* KTraderParse_newBOOL( char _b )
143 {
144  return new ParseTreeBOOL( (bool)_b );
145 }
146 
147 void* KTraderParse_newMAX2( char *_id )
148 {
149  ParseTreeMAX2 *t = new ParseTreeMAX2( _id );
150  free(_id);
151  return t;
152 }
153 
154 void* KTraderParse_newMIN2( char *_id )
155 {
156  ParseTreeMIN2 *t = new ParseTreeMIN2( _id );
157  free(_id);
158  return t;
159 }

kio/kio

Skip menu "kio/kio"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kio/kio

Skip menu "kio/kio"
  • arts
  • dcop
  • dnssd
  • interfaces
  •     interface
  •     library
  •   kspeech
  •   ktexteditor
  • kabc
  • kate
  • kcmshell
  • kdecore
  • kded
  • kdefx
  • kdeprint
  • kdesu
  • kdeui
  • kdoctools
  • khtml
  • kimgio
  • kinit
  • kio
  •   bookmarks
  •   httpfilter
  •   kfile
  •   kio
  •   kioexec
  •   kpasswdserver
  •   kssl
  • kioslave
  •   http
  • kjs
  • kmdi
  •   kmdi
  • knewstuff
  • kparts
  • krandr
  • kresources
  • kspell2
  • kunittest
  • kutils
  • kwallet
  • libkmid
  • libkscreensaver
Generated for kio/kio by doxygen 1.8.3.1
This website is maintained by Timothy Pearson.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. |