97 static int nextToken (
const char **signature);
114 static constTypePtr
determineFlexType (constFunctionTypePtr actual, constFunctionTypePtr declared);
120 static const constTypePtr
Any;
122 static const constTypePtr
Void;
128 static const constTypePtr
Path;
131 static const constTypePtr
Term;
149 static const constTypePtr
Flex;
161 static const constTypePtr
List;
163 static const constTypePtr
Map;
167 static FunctionTypePtr
Function(constTypePtr return_type);
169 static const constTypePtr
Nil;
191 virtual std::ostream &
toStream (std::ostream &
str)
const;
196 virtual std::ostream &
toXml (std::ostream &
str,
int indent )
const;
206 virtual constTypePtr
matchFlex (constTypePtr ,
unsigned int = 0)
const {
return 0; }
212 virtual int match (constTypePtr expected)
const;
224 virtual bool canCast (constTypePtr to)
const;
229 virtual TypePtr
clone ()
const;
234 virtual constTypePtr
unflex (constTypePtr type,
unsigned int number = 0)
const;
270 int basematch (constTypePtr expected)
const;
275 virtual bool equals (constTypePtr expected)
const;
316 virtual constTypePtr
commontype (constTypePtr type)
const;
322 virtual constTypePtr
detailedtype (constTypePtr type)
const;
332 std::ostream &
toStream (std::ostream &
str)
const;
334 constTypePtr
matchFlex (constTypePtr type,
unsigned int number = 0)
const;
335 int match (constTypePtr expected)
const;
336 TypePtr
clone ()
const;
337 constTypePtr
unflex (constTypePtr type,
unsigned int number = 0)
const;
352 std::ostream &
toStream (std::ostream &
str)
const;
354 constTypePtr
matchFlex (constTypePtr type,
unsigned int number = 0)
const;
355 int match (constTypePtr expected)
const;
356 TypePtr
clone ()
const;
357 constTypePtr
unflex (constTypePtr type,
unsigned int number = 0)
const;
358 unsigned int number ()
const;
374 std::ostream &
toStream (std::ostream &
str)
const;
376 constTypePtr
matchFlex (constTypePtr
type,
unsigned int number = 0)
const;
377 int match (constTypePtr expected)
const;
378 bool equals (constTypePtr expected)
const;
379 TypePtr
clone ()
const;
380 constTypePtr
unflex (constTypePtr
type,
unsigned int number = 0)
const;
398 constTypePtr
matchFlex (constTypePtr
type,
unsigned int number = 0)
const;
399 int match (constTypePtr expected)
const;
400 bool equals (constTypePtr expected)
const;
403 bool canCast (constTypePtr to)
const;
404 TypePtr
clone ()
const;
405 constTypePtr
unflex (constTypePtr
type,
unsigned int number = 0)
const;
407 std::ostream &
toStream (std::ostream &
str)
const;
425 constTypePtr
matchFlex (constTypePtr type,
unsigned int number = 0)
const;
426 int match (constTypePtr expected)
const;
427 bool equals (constTypePtr expected)
const;
428 constTypePtr
commontype (constTypePtr type)
const;
430 bool canCast (constTypePtr to)
const;
431 TypePtr
clone ()
const;
432 constTypePtr
unflex (constTypePtr type,
unsigned int number = 0)
const;
435 std::ostream &
toStream (std::ostream &
str)
const;
451 constTypePtr
matchFlex (constTypePtr type,
unsigned int number = 0)
const;
452 int match (constTypePtr expected)
const;
453 bool equals (constTypePtr expected)
const;
454 bool canCast (constTypePtr to)
const;
455 TypePtr
clone ()
const;
456 constTypePtr
unflex (constTypePtr type,
unsigned int number = 0)
const;
458 std::ostream &
toStream (std::ostream &
str)
const;
459 BlockType (constTypePtr type,
bool as_const =
false);
475 constTypePtr
matchFlex (constTypePtr type,
unsigned int number = 0)
const;
476 int match (constTypePtr expected)
const;
477 bool equals (constTypePtr expected)
const;
478 bool canCast (constTypePtr to)
const;
479 TypePtr
clone ()
const;
480 constTypePtr
unflex (constTypePtr type,
unsigned int number = 0)
const;
481 std::ostream &
toStream (std::ostream &
str)
const;
482 TupleType (constTypePtr type,
bool as_const =
false);
484 void concat (constTypePtr t);
486 constTypePtr
parameterType (
unsigned int parameter_number)
const;
500 FunctionType (constTypePtr return_type, constFunctionTypePtr arguments);
503 constTypePtr
matchFlex (constTypePtr type,
unsigned int number = 0)
const;
504 int match (constTypePtr expected)
const;
505 bool equals (constTypePtr expected)
const;
506 bool canCast (constTypePtr )
const {
return false; }
507 TypePtr
clone ()
const;
508 constTypePtr
unflex (constTypePtr type,
unsigned int number = 0)
const;
509 std::ostream &
toStream (std::ostream &
str)
const;
514 void concat (constTypePtr t);
516 constTypePtr
parameterType (
unsigned int parameter_number)
const;