/* * #%~ * New Pretty Printer * %% * Copyright (C) 2008 - 2014 Overture * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #~% */ package org.overture.core.npp; /** * The VdmNsTable Class provides a default VDM-based implementation of {@link ISymbolTable}. It provides attributes for all * VDM language constructs needed to print out the Overture AST. <br> * Pretty Printers for language extensions may subclass VdmNsTable and override methods as necessary * * @author ldc */ public class VdmSymbolTable implements ISymbolTable { // singleton instance private static VdmSymbolTable instance = null; protected VdmSymbolTable() { } // create initial mapping of vdm elements and attributes public static VdmSymbolTable getInstance() { if (instance == null) { instance = new VdmSymbolTable(); } return instance; } @Override public String getTAIL() { return "tl"; } @Override public String getAND() { return "and"; } @Override public String getOR() { return "or"; } @Override public String getPLUS() { return "+"; } @Override public String getMINUS() { return "-"; } @Override public String getDIVIDE() { return "/"; } @Override public String getTIMES() { return "*"; } @Override public String getLT() { return "<"; } @Override public String getLE() { return "<="; } @Override public String getGT() { return ">"; } @Override public String getGE() { return ">="; } @Override public String getNE() { return "<>"; } @Override public String getEQUALS() { return "="; } @Override public String getEQUIV() { return "<=>"; } @Override public String getIMPLIES() { return "=>"; } @Override public String getSETDIFF() { return "\\"; } @Override public String getPLUSPLUS() { return "++"; } @Override public String getSTARSTAR() { return "**"; } @Override public String getCONCATENATE() { return "^"; } @Override public String getMAPLET() { return "|->"; } @Override public String getRANGE() { return "..."; } @Override public String getDOMRESTO() { return "<:"; } @Override public String getDOMRESBY() { return "<-:"; } @Override public String getRANGERESTO() { return ":>"; } @Override public String getRANGERESBY() { return ":->"; } @Override public String getLAMBDA() { return "lambda"; } @Override public String getIOTA() { return "iota"; } @Override public String getEXISTS1() { return "exists1"; } @Override public String getEXISTS() { return "exists"; } @Override public String getPOINT() { return "."; } @Override public String getHEAD() { return "hd"; } @Override public String getFORALL() { return "forall"; } @Override public String getCOMPOSITION() { return "comp"; } @Override public String getINDS() { return "inds"; } @Override public String getDISTCONC() { return "conc"; } @Override public String getDUNION() { return "dunion"; } @Override public String getFLOOR() { return "floor"; } @Override public String getMERGE() { return "merge"; } @Override public String getDINTER() { return "dinter"; } @Override public String getABSOLUTE() { return "abs"; } @Override public String getELEMS() { return "elems"; } @Override public String getRNG() { return "rng"; } @Override public String getPOWER() { return "power"; } @Override public String getLEN() { return "len"; } @Override public String getDOM() { return "dom"; } @Override public String getCARD() { return "card"; } @Override public String getINVERSE() { return "inverse"; } @Override public String getINTER() { return "inter"; } @Override public String getUNION() { return "union"; } @Override public String getMUNION() { return "munion"; } @Override public String getREM() { return "rem"; } @Override public String getMOD() { return "mod"; } @Override public String getDIV() { return "div"; } @Override public String getSUBSET() { return "subset"; } @Override public String getPSUBSET() { return "psubset"; } @Override public String getINSET() { return "in set"; } @Override public String getNOTINSET() { return "not in set"; } @Override public String getPRED() { return "&"; } @Override public String getSEP() { return ";"; } @Override public String getDEF() { return "=="; } @Override public String getOPENQUOTE() { return "<"; } @Override public String getCLOSEQUOTE() { return ">"; } @Override public String getCHARDELIM() { return "'"; } @Override public String getSTRINGDELIM() { return "\""; } }