g4tools  5.4.0
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
tools::get_path Class Reference
Inheritance diagram for tools::get_path:
Inheritance graph
[legend]
Collaboration diagram for tools::get_path:
Collaboration graph
[legend]

Public Member Functions

virtual bool binary (unsigned int, const valop &a_1, const valop &a_2)
 
virtual bool unary (unsigned int, const valop &a_1)
 
virtual bool variable (unsigned int, const value &)
 
virtual bool option (const valop &)
 
virtual bool func_1 (const valop &, const valop &a_1)
 
virtual bool func_2 (const valop &, const valop &a_1, const valop &a_2)
 
virtual bool func_3 (const valop &, const valop &a_1, const valop &a_2, const valop &a_3)
 
virtual bool func_4 (const valop &, const valop &a_1, const valop &a_2, const valop &a_3, const valop &a_4)
 
virtual bool func_5 (const valop &, const valop &a_1, const valop &a_2, const valop &a_3, const valop &a_4, const valop &a_5)
 
virtual bool func_6 (const valop &, const valop &a_1, const valop &a_2, const valop &a_3, const valop &a_4, const valop &a_5, const valop &a_6)
 
 get_path ()
 
virtual ~get_path ()
 
 get_path (const get_path &a_from)
 
get_pathoperator= (const get_path &a_from)
 
- Public Member Functions inherited from tools::valop_visitor
virtual ~valop_visitor ()
 
bool visit (const valop &a_valop)
 

Public Attributes

valopm_node
 
int m_tag
 
std::vector< valop * > m_path
 

Protected Member Functions

bool match (const valop &a_node)
 

Detailed Description

Definition at line 491 of file valop.

Constructor & Destructor Documentation

◆ get_path() [1/2]

tools::get_path::get_path ( )
inline

Definition at line 624 of file valop.

624 :m_node(0),m_tag(0){}

◆ ~get_path()

virtual tools::get_path::~get_path ( )
inlinevirtual

Definition at line 625 of file valop.

625 {}

◆ get_path() [2/2]

tools::get_path::get_path ( const get_path a_from)
inline

Definition at line 627 of file valop.

628  :valop_visitor(a_from)
629  ,m_node(a_from.m_node)
630  ,m_tag(a_from.m_tag)
631  {}

Member Function Documentation

◆ binary()

virtual bool tools::get_path::binary ( unsigned int  ,
const valop a_1,
const valop a_2 
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 493 of file valop.

493  {
494  if(match(a_1)) {m_path.push_back(m_node);return false;} //stop searching
495  if(match(a_2)) {m_path.push_back(m_node);return false;} //stop searching
496  m_path.push_back((valop*)&a_1);
497  if(!visit(a_1)) return false; //found in sub hierachy
498  m_path.pop_back();
499  m_path.push_back((valop*)&a_2);
500  if(!visit(a_2)) return false;
501  m_path.pop_back();
502  return true; //continue searching
503  }

◆ func_1()

virtual bool tools::get_path::func_1 ( const valop ,
const valop a_1 
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 516 of file valop.

516  {
517  if(match(a_1)) {m_path.push_back(m_node);return false;} //stop searching
518  m_path.push_back((valop*)&a_1);
519  if(!visit(a_1)) return false; //found in sub hierachy
520  m_path.pop_back();
521  return true; //continue searching
522  }

◆ func_2()

virtual bool tools::get_path::func_2 ( const valop ,
const valop a_1,
const valop a_2 
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 523 of file valop.

523  {
524  if(match(a_1)) {m_path.push_back(m_node);return false;} //stop searching
525  if(match(a_2)) {m_path.push_back(m_node);return false;} //stop searching
526  m_path.push_back((valop*)&a_1);
527  if(!visit(a_1)) return false; //found in sub hierachy
528  m_path.pop_back();
529  m_path.push_back((valop*)&a_2);
530  if(!visit(a_2)) return false;
531  m_path.pop_back();
532  return true; //continue searching
533  }

◆ func_3()

virtual bool tools::get_path::func_3 ( const valop ,
const valop a_1,
const valop a_2,
const valop a_3 
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 534 of file valop.

535  {
536  if(match(a_1)) {m_path.push_back(m_node);return false;} //stop searching
537  if(match(a_2)) {m_path.push_back(m_node);return false;} //stop searching
538  if(match(a_3)) {m_path.push_back(m_node);return false;} //stop searching
539  m_path.push_back((valop*)&a_1);
540  if(!visit(a_1)) return false; //found in sub hierachy
541  m_path.pop_back();
542  m_path.push_back((valop*)&a_2);
543  if(!visit(a_2)) return false;
544  m_path.pop_back();
545  m_path.push_back((valop*)&a_3);
546  if(!visit(a_3)) return false;
547  m_path.pop_back();
548  return true; //continue searching
549  }

◆ func_4()

virtual bool tools::get_path::func_4 ( const valop ,
const valop a_1,
const valop a_2,
const valop a_3,
const valop a_4 
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 550 of file valop.

551  {
552  if(match(a_1)) {m_path.push_back(m_node);return false;} //stop searching
553  if(match(a_2)) {m_path.push_back(m_node);return false;} //stop searching
554  if(match(a_3)) {m_path.push_back(m_node);return false;} //stop searching
555  if(match(a_4)) {m_path.push_back(m_node);return false;} //stop searching
556  m_path.push_back((valop*)&a_1);
557  if(!visit(a_1)) return false; //found in sub hierachy
558  m_path.pop_back();
559  m_path.push_back((valop*)&a_2);
560  if(!visit(a_2)) return false;
561  m_path.pop_back();
562  m_path.push_back((valop*)&a_3);
563  if(!visit(a_3)) return false;
564  m_path.pop_back();
565  m_path.push_back((valop*)&a_4);
566  if(!visit(a_4)) return false;
567  m_path.pop_back();
568  return true; //continue searching
569  }

◆ func_5()

virtual bool tools::get_path::func_5 ( const valop ,
const valop a_1,
const valop a_2,
const valop a_3,
const valop a_4,
const valop a_5 
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 570 of file valop.

571  {
572  if(match(a_1)) {m_path.push_back(m_node);return false;} //stop searching
573  if(match(a_2)) {m_path.push_back(m_node);return false;} //stop searching
574  if(match(a_3)) {m_path.push_back(m_node);return false;} //stop searching
575  if(match(a_4)) {m_path.push_back(m_node);return false;} //stop searching
576  if(match(a_5)) {m_path.push_back(m_node);return false;} //stop searching
577  m_path.push_back((valop*)&a_1);
578  if(!visit(a_1)) return false; //found in sub hierachy
579  m_path.pop_back();
580  m_path.push_back((valop*)&a_2);
581  if(!visit(a_2)) return false;
582  m_path.pop_back();
583  m_path.push_back((valop*)&a_3);
584  if(!visit(a_3)) return false;
585  m_path.pop_back();
586  m_path.push_back((valop*)&a_4);
587  if(!visit(a_4)) return false;
588  m_path.pop_back();
589  m_path.push_back((valop*)&a_5);
590  if(!visit(a_5)) return false;
591  m_path.pop_back();
592  return true; //continue searching
593  }

◆ func_6()

virtual bool tools::get_path::func_6 ( const valop ,
const valop a_1,
const valop a_2,
const valop a_3,
const valop a_4,
const valop a_5,
const valop a_6 
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 594 of file valop.

596  {
597  if(match(a_1)) {m_path.push_back(m_node);return false;} //stop searching
598  if(match(a_2)) {m_path.push_back(m_node);return false;} //stop searching
599  if(match(a_3)) {m_path.push_back(m_node);return false;} //stop searching
600  if(match(a_4)) {m_path.push_back(m_node);return false;} //stop searching
601  if(match(a_5)) {m_path.push_back(m_node);return false;} //stop searching
602  if(match(a_6)) {m_path.push_back(m_node);return false;} //stop searching
603  m_path.push_back((valop*)&a_1);
604  if(!visit(a_1)) return false; //found in sub hierachy
605  m_path.pop_back();
606  m_path.push_back((valop*)&a_2);
607  if(!visit(a_2)) return false;
608  m_path.pop_back();
609  m_path.push_back((valop*)&a_3);
610  if(!visit(a_3)) return false;
611  m_path.pop_back();
612  m_path.push_back((valop*)&a_4);
613  if(!visit(a_4)) return false;
614  m_path.pop_back();
615  m_path.push_back((valop*)&a_5);
616  if(!visit(a_5)) return false;
617  m_path.pop_back();
618  m_path.push_back((valop*)&a_6);
619  if(!visit(a_6)) return false;
620  m_path.pop_back();
621  return true; //continue searching
622  }

◆ match()

bool tools::get_path::match ( const valop a_node)
inlineprotected

Definition at line 638 of file valop.

638  {
639  if(m_node) {
640  if((&a_node)==m_node) return true;
641  } else {
642  if(a_node.m_tag==m_tag) return true;
643  }
644  return false;
645  }

◆ operator=()

get_path& tools::get_path::operator= ( const get_path a_from)
inline

Definition at line 632 of file valop.

632  {
633  m_node = a_from.m_node;
634  m_tag = a_from.m_tag;
635  return *this;
636  }

◆ option()

virtual bool tools::get_path::option ( const valop )
inlinevirtual

Implements tools::valop_visitor.

Definition at line 514 of file valop.

514 {return true;}

◆ unary()

virtual bool tools::get_path::unary ( unsigned int  ,
const valop a_1 
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 505 of file valop.

505  {
506  if(match(a_1)) {m_path.push_back(m_node);return false;} //stop searching
507  m_path.push_back((valop*)&a_1);
508  if(!visit(a_1)) return false; //found in sub hierachy
509  m_path.pop_back();
510  return true; //continue searching
511  }

◆ variable()

virtual bool tools::get_path::variable ( unsigned int  ,
const value  
)
inlinevirtual

Implements tools::valop_visitor.

Definition at line 513 of file valop.

513 {return true;}

Member Data Documentation

◆ m_node

valop* tools::get_path::m_node

Definition at line 647 of file valop.

◆ m_path

std::vector<valop*> tools::get_path::m_path

Definition at line 649 of file valop.

◆ m_tag

int tools::get_path::m_tag

Definition at line 648 of file valop.


The documentation for this class was generated from the following file:
tools::get_path::m_node
valop * m_node
Definition: valop:647
tools::valop_visitor::visit
bool visit(const valop &a_valop)
Definition: valop:419
tools::get_path::match
bool match(const valop &a_node)
Definition: valop:638
tools::get_path::m_path
std::vector< valop * > m_path
Definition: valop:649
tools::get_path::m_tag
int m_tag
Definition: valop:648