Main Page   Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

str.h

This is the verbatim text of the str.h include file.
/* Sun-$Revision: 23.2 $ */

/* Copyright 1992-9 Sun Microsystems, Inc. and Stanford University.
   See the LICENSE file for license information. */

# pragma interface

struct String: ParseNode {
  char* str;
  smi   len;    // Necessary since strings may contain '\0'.
  
  String(char* s)        { str = s; len = strlen(str); }
  String(char* s, smi l) { str = s; len = l; }
  
  char* AsCharP()  { return str; }
  fint arg_count() { return str_arg_count(str); }

  bool equals(String* other) {
    return strcmp(AsCharP(), other->AsCharP()) == 0;
  }

  fint line_count();
  
  void Print();
};

struct StringListElement: ListElement {
  StringListElement(String* d, StringListElement* n = 0) : ListElement(d, n) {}
  String* Data() { return (String*) ListElement::Data(); }
  StringListElement* Next() { return (StringListElement*) ListElement::Next(); }
};

struct StringList: List {
  StringList() : List() {}
  StringList(String* e) : List(e) {}
  
  StringListElement* Head() { return (StringListElement*) List::Head(); }
  StringListElement* Tail() { return (StringListElement*) List::Tail(); }
  StringList* Append(String* e) { return (StringList*) List::Append(e); }
  
  String* AsSelector();
};

Generated at Tue Jun 27 12:10:38 2000 for SelfVM by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999