Example usage for org.antlr.v4.runtime Token getLine

List of usage examples for org.antlr.v4.runtime Token getLine

Introduction

In this page you can find the example usage for org.antlr.v4.runtime Token getLine.

Prototype

int getLine();

Source Link

Document

The line number on which the 1st character of this token was matched, line=1..n

Usage

From source file:de.huberlin.cuneiform.language.BaseCuneiformParser.java

License:Apache License

protected void addDefTaskLabel(Token tasknameToken, Token labelToken) {

    String taskname;//w w  w .  j a v a  2 s . co m
    String label;
    DefTask task;

    if (tasknameToken == null)
        throw new NullPointerException("Task name token must not be null.");

    if (labelToken == null)
        throw new NullPointerException("Label token must not be null.");

    taskname = tasknameToken.getText();
    label = labelToken.getText();

    task = defTaskMap.get(taskname);
    if (task == null)
        throw new NullPointerException("Referenced task does not exits.");

    if (!labelMap.containsKey(label)) {

        reportError(ERROR_ORDER, labelToken.getLine(), "In definition of task '" + taskname + "' the label '"
                + label + "' is used but was not defined.");

        return;
    }

    task.addLabel(label);
}

From source file:de.huberlin.cuneiform.language.BaseCuneiformParser.java

License:Apache License

protected void addExtendLabel(Token idToken) {

    String label;//from   w w w. jav  a2 s  .  c  om

    if (idToken == null)
        throw new NullPointerException("Id token must not be null.");

    label = idToken.getText();

    if (label == null)
        throw new NullPointerException("Label must not be null.");

    if (curExtend.containsLabel(label)) {

        reportError(ERROR_UNIQUENESS, idToken.getLine(),
                "Duplicate reference to label '" + label + "' in extend statement.");

        return;
    }

    curExtend.addLabel(label);
}

From source file:de.huberlin.cuneiform.language.BaseCuneiformParser.java

License:Apache License

protected void addLabel(Token idToken) {

    String label;/*from  w  w  w .ja va 2 s. co  m*/

    if (idToken == null)
        throw new NullPointerException("Id token must not be null.");

    label = idToken.getText();

    // check whether we have seen a declare statement yet
    if (declare == null) {

        reportError(ERROR_ORDER, idToken.getLine(),
                "Label definition for '" + label + "' must not appear prior to declare statement.");

        return;
    }

    // check whether this is the first time, this label is introduced
    if (labelMap.containsKey(label)) {

        reportError(ERROR_UNIQUENESS, idToken.getLine(),
                "Duplicate label definition. The label '" + label + "' has already been defined.");

        return;
    }

    labelMap.put(label, new HashSet<String>());
}

From source file:de.huberlin.cuneiform.language.BaseCuneiformParser.java

License:Apache License

protected void addLabelMember(Token outerToken, Token innerToken) {

    String outer;/*from  w w w  . j  av  a  2s. c o m*/
    String inner;
    Set<String> list;

    if (outerToken == null)
        throw new NullPointerException("Outer token must not be null.");

    if (innerToken == null)
        throw new NullPointerException("Inner token must not be null.");

    outer = outerToken.getText();
    inner = innerToken.getText();

    // check whether the member refers to itself
    if (outer.equals(inner)) {

        reportError(ERROR_REFERENCE, innerToken.getLine(), "Label cannot have itself as a member.");

        return;
    }

    // check whether the inner label has been defined
    list = labelMap.get(inner);
    if (list == null) {

        reportError(ERROR_ORDER, innerToken.getLine(), "Cannot reference undefined label '" + inner + "'.");

        return;
    }

    list = labelMap.get(outer);
    list.add(inner);
}

From source file:de.huberlin.cuneiform.language.BaseCuneiformParser.java

License:Apache License

protected void addTarget(Token idToken) {

    String target;/*from  w w  w.  j  a  va 2  s .  co  m*/

    if (idToken == null)
        throw new NullPointerException("Id token must not be null.");

    target = idToken.getText();

    if (target == null)
        throw new NullPointerException("Target variable name must not be null.");

    if (target.isEmpty())
        throw new NullPointerException("Target variable name must not be empty.");

    if (targetSet.contains(target))
        reportError(ERROR_UNIQUENESS, idToken.getLine(),
                "Duplicate reference to variable '" + target + "' in target variable definition.");

    targetSet.add(target);
}

From source file:de.huberlin.cuneiform.language.BaseCuneiformParser.java

License:Apache License

protected void importFile(Token idToken) {

    if (idToken == null)
        throw new NullPointerException("Id token must not be null.");

    // check whether declare statement was present
    if (declare == null) {

        reportError(ERROR_ORDER, idToken.getLine(), "Import is allowed only after declare statement.");

        return;//from   w ww  .ja  v a 2  s.  co m
    }

    try {
        importFile(idToken.getText());
    } catch (IOException e) {
        reportError(ERROR_IO, idToken.getLine(), e.getMessage());
    }

}

From source file:de.huberlin.cuneiform.language.BaseCuneiformParser.java

License:Apache License

protected void setDeclare(Token idToken) {

    String d;//from   w  w w  .ja v a2  s .c o  m

    if (idToken == null)
        throw new NullPointerException("Id token must not be null.");

    d = idToken.getText();

    if (d == null)
        throw new NullPointerException("Declare text must not be null.");

    if (d.isEmpty())
        throw new RuntimeException("Declare text must not be empty.");

    if (declare != null) {

        reportError(ERROR_UNIQUENESS, idToken.getLine(), "Duplicate declare statement. Already declared '"
                + declare + "'. Now trying to declare '" + d + "'.");

        return;
    }

    declare = d;

    if (blackList.contains(d))
        throw new DuplicateParseException();

    blackList.add(d);
}

From source file:de.huberlin.cuneiform.language.BaseCuneiformParser.java

License:Apache License

protected void verifyDefTaskLabel(Token taskNameToken) {

    String taskName;/*www. ja  va2s.  com*/
    Set<String> labelSet;

    if (taskNameToken == null)
        throw new NullPointerException("Task name token must not be null.");

    taskName = taskNameToken.getText();
    if (taskName == null)
        throw new NullPointerException("Task name must not be null.");

    if (taskName.isEmpty())
        throw new RuntimeException("Task name must not be empty.");

    labelSet = getLabelSetForTask(taskName);

    if (!ForeignLangCatalog.hasLangLabel(labelSet)) {

        getDefTask(taskName).addLabel("bash");
        labelSet = getLabelSetForTask(taskName);
    }

    if (!ForeignLangCatalog.isLangLabelUnique(labelSet))
        reportError(ERROR_UNIQUENESS, taskNameToken.getLine(), "Language label is not unique.");
}

From source file:de.huberlin.cuneiform.language.DefTaskOutput.java

License:Apache License

public DefTaskOutput(Token idToken, int type) {
    this(idToken.getLine(), idToken.getText(), type);
}

From source file:de.huberlin.cuneiform.language.ForMethod.java

License:Apache License

public ForMethod(Token idToken) {
    this(idToken.getLine(), idToken.getText());
}