exp
Class Sexp

java.lang.Object
  |
  +--exp.Sexp
Direct Known Subclasses:
AtomSexp, ConsSexp, Environment

public abstract class Sexp
extends java.lang.Object
implements java.lang.Cloneable

Sexp Classe astratta per le espressioni simboliche

Version:
7/12/1999
Author:
Marco Chiesi

Field Summary
static Sexp EOF
          Costante fine file
static Sexp FALSE
          Costante booleana false
static Sexp NIL
          Costante lista vuota
static Sexp TRUE
          Costante booleana true
 
Constructor Summary
Sexp()
           
 
Method Summary
abstract  void accept(SexpVisitor v)
          Specifica di un visitor
 void accept2(PrologVisitor v, Sexp that)
          Accettazione di un visitor per il prolog
static Sexp append(Sexp l1, Sexp l2)
          Appende l2 a l1
static Sexp assoc(Sexp el, Sexp plist)
          Cerca un elemento nella lista di coppie e restituisce la coppia (Serve per controllare la presenza nell'environment)
static Sexp atom(java.lang.String id)
          Costruzione di un'espressione atomica
static Sexp caar(Sexp e)
          Car del car
static Sexp cadr(Sexp e)
          Car del cdr
abstract  Sexp car()
          Primo elemento di lista o coppia
static Sexp car(Sexp e)
          Primo elemento di lista o coppia
static Sexp cdar(Sexp e)
          Cdr del car
static Sexp cddr(Sexp e)
          Cdr del cdr
abstract  Sexp cdr()
          Secondo elemento di lista o coppia
static Sexp cdr(Sexp e)
          Secondo elemento di lista o coppia
static Sexp cons(Sexp e1, Sexp e2)
          Costruzione di un'espressione stutturata (lista o coppia)
 Sexp dup()
          Creazione di un clone dell'espressione
static Sexp eq(Sexp e1, Sexp e2)
          Controlla l'uguaglianza tra espressioni
static Sexp isAnAtom(Sexp e)
          Controlla se e' un atomo
abstract  boolean isAtom()
          Controlla se e' un atomo
static boolean isAtom(Sexp e)
          Controlla se e' un atomo
abstract  boolean isEq(Sexp e)
          Controlla l'uguaglianza tra espressioni
static boolean isEq(Sexp e1, Sexp e2)
          Controlla l'uguaglianza tra espressioni
abstract  boolean isList()
          Controlla se e' una lista
static boolean isList(Sexp e)
          Controlla se e' una lista
abstract  boolean isNull()
          Controlla se la lista e' vuota
static boolean isNull(Sexp e)
          Controlla se la lista e' vuota
 boolean isPair()
          Controlla se e' una coppia
static int length(Sexp e)
          Lunghezza di una lista
static Sexp list1(Sexp e1)
          Costruzione di una lista di un elemento
static Sexp list2(Sexp e1, Sexp e2)
          Costruzione di una lista di 2 elementi
static Sexp list3(Sexp e1, Sexp e2, Sexp e3)
          Costruzione di una lista di 3 elementi
static Sexp list4(Sexp e1, Sexp e2, Sexp e3, Sexp e4)
          Costruzione di una lista di 4 elementi
static Sexp list5(Sexp e1, Sexp e2, Sexp e3, Sexp e4, Sexp e5)
          Costruzione di una lista di 3 elementi
static Sexp listArray(Sexp[] a)
          Costruzione di una lista a partire da un array
static boolean member(Sexp e, Sexp l)
          Controlla la presenza in lista
static Sexp pairList(Sexp vars, Sexp vals, Sexp a)
          Costruisce una lista di coppie date due liste (aggiungendola ad a) (serve per creare l'environment)
static boolean selfEvaluating(Sexp e)
          Controlla se l'espressione e' autovalutante
abstract  java.lang.String toSimpleString()
          Conversione a stringa
static java.lang.String toString(Sexp e)
          Conversione a stringa (stile funz.)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NIL

public static Sexp NIL
Costante lista vuota

FALSE

public static Sexp FALSE
Costante booleana false

TRUE

public static Sexp TRUE
Costante booleana true

EOF

public static Sexp EOF
Costante fine file
Constructor Detail

Sexp

public Sexp()
Method Detail

cons

public static Sexp cons(Sexp e1,
                        Sexp e2)
Costruzione di un'espressione stutturata (lista o coppia)

atom

public static Sexp atom(java.lang.String id)
Costruzione di un'espressione atomica

list1

public static Sexp list1(Sexp e1)
Costruzione di una lista di un elemento

list2

public static Sexp list2(Sexp e1,
                         Sexp e2)
Costruzione di una lista di 2 elementi

list3

public static Sexp list3(Sexp e1,
                         Sexp e2,
                         Sexp e3)
Costruzione di una lista di 3 elementi

list4

public static Sexp list4(Sexp e1,
                         Sexp e2,
                         Sexp e3,
                         Sexp e4)
Costruzione di una lista di 4 elementi

list5

public static Sexp list5(Sexp e1,
                         Sexp e2,
                         Sexp e3,
                         Sexp e4,
                         Sexp e5)
Costruzione di una lista di 3 elementi

listArray

public static Sexp listArray(Sexp[] a)
Costruzione di una lista a partire da un array

isNull

public abstract boolean isNull()
Controlla se la lista e' vuota

isEq

public abstract boolean isEq(Sexp e)
Controlla l'uguaglianza tra espressioni

isAtom

public abstract boolean isAtom()
Controlla se e' un atomo

isList

public abstract boolean isList()
Controlla se e' una lista

car

public abstract Sexp car()
Primo elemento di lista o coppia

cdr

public abstract Sexp cdr()
Secondo elemento di lista o coppia

toSimpleString

public abstract java.lang.String toSimpleString()
Conversione a stringa

accept

public abstract void accept(SexpVisitor v)
Specifica di un visitor

isPair

public boolean isPair()
Controlla se e' una coppia

isAtom

public static boolean isAtom(Sexp e)
Controlla se e' un atomo

isEq

public static boolean isEq(Sexp e1,
                           Sexp e2)
Controlla l'uguaglianza tra espressioni

isNull

public static boolean isNull(Sexp e)
Controlla se la lista e' vuota

isList

public static boolean isList(Sexp e)
Controlla se e' una lista

car

public static Sexp car(Sexp e)
Primo elemento di lista o coppia

cdr

public static Sexp cdr(Sexp e)
Secondo elemento di lista o coppia

caar

public static Sexp caar(Sexp e)
Car del car

cadr

public static Sexp cadr(Sexp e)
Car del cdr

cddr

public static Sexp cddr(Sexp e)
Cdr del cdr

cdar

public static Sexp cdar(Sexp e)
Cdr del car

isAnAtom

public static Sexp isAnAtom(Sexp e)
Controlla se e' un atomo

eq

public static Sexp eq(Sexp e1,
                      Sexp e2)
Controlla l'uguaglianza tra espressioni

selfEvaluating

public static boolean selfEvaluating(Sexp e)
Controlla se l'espressione e' autovalutante

pairList

public static Sexp pairList(Sexp vars,
                            Sexp vals,
                            Sexp a)
Costruisce una lista di coppie date due liste (aggiungendola ad a) (serve per creare l'environment)

length

public static int length(Sexp e)
Lunghezza di una lista

assoc

public static Sexp assoc(Sexp el,
                         Sexp plist)
Cerca un elemento nella lista di coppie e restituisce la coppia (Serve per controllare la presenza nell'environment)

toString

public static java.lang.String toString(Sexp e)
Conversione a stringa (stile funz.)

append

public static Sexp append(Sexp l1,
                          Sexp l2)
Appende l2 a l1

member

public static boolean member(Sexp e,
                             Sexp l)
Controlla la presenza in lista

dup

public Sexp dup()
         throws java.lang.CloneNotSupportedException
Creazione di un clone dell'espressione

accept2

public void accept2(PrologVisitor v,
                    Sexp that)
Accettazione di un visitor per il prolog