コード例 #1
0
bool CParseTreeTerminalNodeIdentifier::EvaluatesToBinaryNumber() {
  if (TokenEvaluatesToBinaryNumber(_node_type)) {
    // Operation that evaluates to binary number,
    // e.g. bit-shift, logical and, etc.
    return true;
  }
  else if (IsBinaryIdentifier()) return true;
  else if ((_node_type == kTokenIdentifier)
      && p_function_collection->EvaluatesToBinaryNumber(_terminal_name)) {
    return true;
  }
  // Nothing binary
  return false;
}
コード例 #2
0
bool CParseTreeNode::EvaluatesToBinaryNumber() {
  if (TokenEvaluatesToBinaryNumber(_node_type)) {
    // Operation that evaluates to binary number,
    // e.g. bit-shift, logical and, etc.
    return true;
  }
  else if (TokenIsBracketOpen(_node_type)) {
    // Have a look at the sub-extreesopn
    TPParseTreeNode sub_expression = _first_sibbling;
    // There has to be an expresison inside the brackets
    assert (_first_sibbling != NULL);
    return _first_sibbling->EvaluatesToBinaryNumber();
  }
  else if (IsBinaryIdentifier()) return true;
  else if ((_node_type == kTokenIdentifier)
      && p_function_collection->EvaluatesToBinaryNumber(_terminal_name)) {
    return true;
  }
  // Nothing binary
  return false;
}