68 const char *
name ()
const;
69 SymbolEntryPtr
entry ()
const;
75 std::ostream &
toXml (std::ostream & str,
int indent )
const;
76 constTypePtr
type()
const {
return m_entry->type(); }
91 const char *
name ()
const;
92 SymbolEntryPtr
entry ()
const;
96 std::ostream &
toXml (std::ostream & str,
int indent )
const;
97 constTypePtr
type()
const;
114 constTypePtr attachParameter (YCodePtr code, constTypePtr dummy =
Type::Unspec);
116 const char *
name ()
const;
118 std::ostream &
toStream (std::ostream &
str)
const;
119 std::ostream &
toXml (std::ostream & str,
int indent )
const;
131 enum cmp_op { C_NOT = 1, C_EQ = 2, C_LT = 4,
135 C_GT = C_NOT|C_EQ|C_LT
143 YECompare (YCodePtr left, c_op op, YCodePtr right);
149 std::ostream &
toStream (std::ostream &
str)
const;
150 std::ostream &
toXml (std::ostream & str,
int indent )
const;
166 YELocale (
const char *singular,
const char *plural, YCodePtr count,
const char *textdomain);
172 std::ostream &
toStream (std::ostream &
str)
const;
173 std::ostream &
toXml (std::ostream & str,
int indent )
const;
190 void attach (YCodePtr element);
194 std::ostream &
toStream (std::ostream &
str)
const;
195 std::ostream &
toXml (std::ostream & str,
int indent )
const;
196 constTypePtr
type()
const;
198 YCodePtr value (
int index)
const;
211 YEMap (YCodePtr key, YCodePtr value);
215 void attach (YCodePtr key, YCodePtr value);
220 std::ostream &
toStream (std::ostream &
str)
const;
221 std::ostream &
toXml (std::ostream & str,
int indent )
const;
222 constTypePtr
type()
const;
236 YEPropagate (YCodePtr value, constTypePtr from, constTypePtr to);
241 bool canPropagate(
const YCPValue& value, constTypePtr to_type)
const;
243 std::ostream &
toStream (std::ostream &
str)
const;
244 std::ostream &
toXml (std::ostream & str,
int indent )
const;
245 constTypePtr
type()
const {
return m_to; }
266 std::ostream &
toStream (std::ostream &
str)
const;
267 std::ostream &
toXml (std::ostream & str,
int indent )
const;
268 constTypePtr
type()
const {
return ((constFunctionTypePtr)m_decl->
type)->returnType (); }
291 std::ostream &
toStream (std::ostream &
str)
const;
292 std::ostream &
toXml (std::ostream & str,
int indent )
const;
293 constTypePtr
type()
const;
307 YETriple (YCodePtr a_expr, YCodePtr a_true, YCodePtr a_false);
316 std::ostream &
toStream (std::ostream &
str)
const;
317 std::ostream &
toXml (std::ostream & str,
int indent )
const;
318 constTypePtr
type()
const {
return m_true->type ()->commontype (m_false->type ()); }
331 YEIs (YCodePtr expr, constTypePtr
type);
337 std::ostream &
toStream (std::ostream &
str)
const;
338 std::ostream &
toXml (std::ostream & str,
int indent )
const;
357 std::ostream &
toStream (std::ostream &
str)
const;
358 std::ostream &
toXml (std::ostream & str,
int indent )
const;
359 constTypePtr
type()
const {
return m_expr->type(); }
374 YEBracket (YCodePtr var, YCodePtr arg, YCodePtr def, constTypePtr resultType);
380 std::ostream &
toStream (std::ostream &
str)
const;
381 std::ostream &
toXml (std::ostream & str,
int indent )
const;
382 constTypePtr
type()
const {
return m_resultType; }
383 YCodePtr
def ()
const {
return m_def; }
414 constTypePtr finalize (
Logger* problem_logger);
416 void closeParameters ();
418 constTypePtr attachParameter (YCodePtr code, constTypePtr
type =
Type::Unspec);
420 constTypePtr attachSymVariable (
const char *
name, constTypePtr
type,
unsigned int line,
TableEntry *&tentry);
423 std::ostream &
toStream (std::ostream &
str)
const;
424 std::ostream &
toXml (std::ostream & str,
int indent )
const;
425 constTypePtr
type ()
const;
426 constTypePtr completeType ()
const;
427 YBlockPtr parameterBlock ()
const;
448 const SymbolEntryPtr
entry ()
const;
458 constTypePtr attachParameter (YCodePtr code, constTypePtr
type);
466 virtual constTypePtr finalize ();
468 std::ostream &
toStream (std::ostream &
str)
const;
469 std::ostream &
toXml (std::ostream &
str,
int indent )
const;
470 constTypePtr
type()
const;
471 string qualifiedName ()
const;
487 virtual constTypePtr finalize ();
514 string qualifiedName ()
const;
515 string name ()
const;
519 virtual bool attachParameter (
const YCPValue& arg,
const int pos);
520 virtual constTypePtr wantedParameterType ()
const;
521 virtual bool appendParameter (
const YCPValue& arg);
522 virtual bool finishParameters ();
524 virtual bool reset ();
527 #endif // YExpression_h c++ interface for logging
Definition: libycp/src/include/ycp/y2log.h:73
Y2Function * m_functioncall
Definition: YExpression.h:441
Definition: YExpression.h:229
TableEntry * m_entry
Definition: YExpression.h:437
constTypePtr type() const
Definition: YExpression.h:268
constTypePtr type() const
Definition: YExpression.h:151
YCPValue * m_parameters
Definition: YExpression.h:509
Definition: YExpression.h:325
YCode for precompiled ycp code.
Definition: YCode.h:75
static const constTypePtr Term
Definition: Type.h:131
YCodePtr m_false
Definition: YExpression.h:305
YCodePtr m_arg1
Definition: YExpression.h:279
SymbolEntryPtr m_entry
Definition: YExpression.h:62
Definition: YExpression.h:181
uint m_next_param_id
Definition: YExpression.h:443
YCodePtr m_expr
Definition: YExpression.h:349
#define str
Definition: scanner.cc:1003
Definition: YExpression.h:127
Definition: YExpression.h:158
virtual ykind kind() const
Definition: YExpression.h:310
constTypePtr type() const
Definition: YExpression.h:318
YCodePtr m_def
Definition: YExpression.h:371
YCodePtr m_arg
Definition: YExpression.h:370
virtual ykind kind() const
Definition: YExpression.h:67
virtual ykind kind() const
Definition: YExpression.h:239
YEVariable(SymbolEntryPtr entry)
Definition: YExpression.cc:77
constFunctionTypePtr m_type
Definition: YExpression.h:394
virtual ykind kind() const
Definition: YExpression.h:90
const char * m_singular
Definition: YExpression.h:161
constTypePtr type() const
Definition: YExpression.h:174
declaration_t * m_decl
Definition: YExpression.h:278
static const constTypePtr Locale
Definition: Type.h:127
~YEReference()
Definition: YExpression.h:89
SymbolEntryPtr m_entry
Definition: YExpression.h:85
YCodePtr m_expr
Definition: YExpression.h:328
constTypePtr type
Definition: StaticDeclaration.h:77
virtual ykind kind() const
Definition: YExpression.h:499
Definition: YExpression.h:103
cmp_op
Definition: YExpression.h:131
YCodePtr m_value
Definition: YExpression.h:234
ykind
Definition: YCode.h:90
Definition: YExpression.h:390
virtual ykind kind() const
Definition: YExpression.h:404
constTypePtr type() const
Definition: YExpression.h:245
Definition: YExpression.h:252
YCodePtr m_arg
Definition: YExpression.h:256
std::ostream & toStream(std::ostream &str) const
Definition: YExpression.cc:140
ycodelist_t * m_parameters
Definition: YExpression.h:107
constTypePtr type() const
Definition: YExpression.h:120
virtual ykind kind() const
Definition: YExpression.h:285
constTypePtr type() const
Definition: YExpression.h:339
virtual ykind kind() const
Definition: YExpression.h:189
Definition: YExpression.h:275
const char * name() const
Definition: YExpression.cc:99
YBlockPtr m_parameterblock
Definition: YExpression.h:397
ycodelist_t * m_parameters
Definition: YExpression.h:399
Definition: YExpression.h:82
declaration_t * m_decl
Definition: YExpression.h:255
YSymbolEntryPtr m_sentry
Definition: YExpression.h:508
YCPValue evaluate(bool cse=false)
Definition: YExpression.cc:113
mapval_t * m_first
Definition: YExpression.h:209
Definition: YExpression.h:366
Definition: YExpression.h:346
YLocale::t_uniquedomains::const_iterator m_domain
Definition: YExpression.h:164
const char * m_plural
Definition: YExpression.h:162
SymbolEntryPtr m_sentry
Definition: YExpression.h:438
virtual ykind kind() const
Definition: YExpression.h:377
Definition: YExpression.h:208
virtual ykind kind() const
Definition: YExpression.h:485
YCodePtr * m_parameters
Definition: YExpression.h:439
static const constTypePtr Unspec
Definition: Type.h:118
constTypePtr type() const
Definition: YExpression.h:359
constTypePtr type() const
Definition: YExpression.h:76
c_op m_op
Definition: YExpression.h:140
virtual ykind kind() const
Definition: YExpression.h:354
constTypePtr * m_parameter_types
Definition: YExpression.h:440
Definition: YExpression.h:59
SymbolEntryPtr entry() const
Definition: YExpression.cc:92
const char * m_name
Definition: YExpression.h:106
ycodelist_t * m_first
Definition: YExpression.h:184
Definition: YExpression.h:433
constTypePtr m_resultType
Definition: YExpression.h:372
YCodePtr m_left
Definition: YExpression.h:139
cmp_op c_op
Definition: YExpression.h:137
Definition: StaticDeclaration.h:71
constTypePtr m_type
Definition: YExpression.h:329
constTypePtr m_to
Definition: YExpression.h:233
Definition: YExpression.h:205
virtual ykind kind() const
Definition: YExpression.h:261
YCodePtr m_true
Definition: YExpression.h:304
YCodePtr value
Definition: YExpression.h:208
virtual ykind kind() const
Definition: YExpression.h:112
Wrapper for YCPValueRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPValueRep with the arrow operator. See YCPValueRep.
Definition: YCPValue.h:275
Definition: YExpression.h:506
DEFINE_DERIVED_POINTER(YEVariable, YCode)
virtual ykind kind() const
Definition: YExpression.h:334
virtual ykind kind() const
Definition: YExpression.h:214
constTypePtr type() const
Definition: YExpression.h:382
YCodePtr m_right
Definition: YExpression.h:141
constTypePtr m_from
Definition: YExpression.h:232
YCodePtr m_expr
Definition: YExpression.h:303
static const constTypePtr Boolean
Definition: Type.h:123
An istream that remembers some data about the bytecode.
Definition: Bytecode.h:42
virtual ykind kind() const
Definition: YExpression.h:169
declaration_t * m_decl
Definition: YExpression.h:393
string toString() const
Definition: YExpression.cc:106
~YEVariable()
Definition: YExpression.h:66
Definition: YExpression.h:300
Definition: SymbolTable.h:42
YCodePtr m_var
Definition: YExpression.h:369
YCodePtr m_arg2
Definition: YExpression.h:280
virtual bool isReferenceable() const
Definition: YExpression.h:72
virtual ykind kind() const
Definition: YExpression.h:146
Definition: Y2Function.h:71
Definition: YExpression.h:493
YCodePtr def() const
Definition: YExpression.h:383
Definition: YExpression.h:479
std::ostream & toXml(std::ostream &str, int indent) const
Definition: YExpression.cc:148
YCodePtr m_count
Definition: YExpression.h:163