package test.antlr.assembler;
/***
* Excerpted from "Language Implementation Patterns",
* published by The Pragmatic Bookshelf.
* Copyrights apply to this code. It may not be used to create training material,
* courses, books, articles, and the like. Contact us if you are in doubt.
* We make no guarantees that this code is fit for any purpose.
* Visit http://www.pragmaticprogrammer.com/titles/tpdsl for more book information.
***/
public class FunctionSymbol {
String name;
int nargs; // how many arguments are there?
int nlocals; // how many locals are there?
int address;
public FunctionSymbol(String name) { this.name = name; }
public FunctionSymbol(String name, int nargs, int nlocals, int address) {
this.name = name;
this.nargs = nargs;
this.nlocals = nlocals;
this.address = address;
}
@Override
public int hashCode() { return name.hashCode(); }
@Override
public boolean equals(Object o) {
return o instanceof FunctionSymbol && name.equals(((FunctionSymbol)o).name);
}
@Override
public String toString() {
return "FunctionSymbol{" +
"name='" + name + '\'' +
", args=" + nargs +
", locals=" + nlocals +
", address=" + address +
'}';
}
}