package org.uva.student.calinwouter.qlqls.ql.helper; import org.uva.student.calinwouter.qlqls.generated.node.*; public class ASTHelper { public static String getIdentifier(AIdentifierExpression node) { final TIdentifier identifier = node.getIdentifier(); return identifier.getText(); } public static String getIdentifier(AQuestionStatement node) { final TIdentifier identifier = node.getIdentifier(); return identifier.getText(); } public static String getIdentifier(AValueStatement node) { final TIdentifier identifier = node.getIdentifier(); return identifier.getText(); } public static String getIdentifier(AIdentifierElement node) { final TIdentifier identifier = node.getIdentifier(); return identifier.getText(); } public static String getIdentifier(ANonParameterizedFunction node) { final TIdentifier identifier = node.getIdentifier(); return identifier.getText(); } public static String getIdentifier(AParameterizedFunction node) { final TIdentifier identifier = node.getIdentifier(); return identifier.getText(); } private static String removeQuotes(String string) { if (!string.startsWith("\"")) { return string; } final String stringWithRightQuote = string.substring(1); final Integer stringWithRightQuoteLength = stringWithRightQuote.length(); return stringWithRightQuote.substring(0, stringWithRightQuoteLength - 1); } public static String getString(AQuestionStatement node) { final TString string = node.getString(); final String stringWithQuotes = string.getText(); return removeQuotes(stringWithQuotes); } public static Integer getNumber(ANumberElement node) { final TNumber number = node.getNumber(); return Integer.parseInt(number.getText()); } public static Integer getNumber(ANumberExpression node) { final TNumber number = node.getNumber(); return Integer.parseInt(number.getText()); } public static String getString(AValueStatement node) { TString string = node.getString(); final String stringWithQuotes = string.getText(); return removeQuotes(stringWithQuotes); } public static String getString(AStringElement node) { final TString string = node.getString(); final String stringWithQuotes = string.getText(); return removeQuotes(stringWithQuotes); } public static Integer getHex(AHexElement node) { final THex hex = node.getHex(); final String hexStringWithHash = hex.getText(); final String hexString = hexStringWithHash.substring(1); return Integer.parseInt(hexString, 16); } }