org.antlr.v4.tool.Grammar.getTokenName()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(7.8k)|赞(0)|评价(0)|浏览(124)

本文整理了Java中org.antlr.v4.tool.Grammar.getTokenName()方法的一些代码示例,展示了Grammar.getTokenName()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Grammar.getTokenName()方法的具体详情如下:
包路径:org.antlr.v4.tool.Grammar
类名称:Grammar
方法名:getTokenName

Grammar.getTokenName介绍

[英]Gets the name by which a token can be referenced in the generated code. For tokens defined in a tokens{}} block or via a lexer rule, this is the declared name of the token. For token types generated by the use of a string literal within a parser rule of a combined grammar, this is the automatically generated token type which includes the #AUTO_GENERATED_TOKEN_NAME_PREFIX prefix. For types which are not associated with a defined token, this method returns #INVALID_TOKEN_NAME.
[中]获取可在生成的代码中引用标记的名称。对于在tokens{}块中或通过lexer规则定义的令牌,这是已声明的令牌名称。对于通过在组合语法的解析器规则中使用字符串文字生成的令牌类型,这是自动生成的令牌类型,其中包括#AUTO_generated_token_NAME_前缀。对于未与定义的令牌关联的类型,此方法返回#INVALID_token_NAME。

代码示例

代码示例来源:origin: org.antlr/antlr4

public String getTokenName(String literal) {
  Grammar grammar = this;
  while (grammar != null) {
    if (grammar.stringLiteralToTypeMap.containsKey(literal))
      return grammar.getTokenName(grammar.stringLiteralToTypeMap.get(literal));
    grammar = grammar.parent;
  }
  return null;
}

代码示例来源:origin: com.tunnelvisionlabs/antlr4

public String getTokenName(String literal) {
  Grammar grammar = this;
  while (grammar != null) {
    if (grammar.stringLiteralToTypeMap.containsKey(literal))
      return grammar.getTokenName(grammar.stringLiteralToTypeMap.get(literal));
    grammar = grammar.parent;
  }
  return null;
}

代码示例来源:origin: org.antlr/antlr4

/** Get a meaningful name for a token type useful during code generation.
 *  Literals without associated names are converted to the string equivalent
 *  of their integer values. Used to generate x==ID and x==34 type comparisons
 *  etc...  Essentially we are looking for the most obvious way to refer
 *  to a token type in the generated code.
 */
public String getTokenTypeAsTargetLabel(Grammar g, int ttype) {
  String name = g.getTokenName(ttype);
  // If name is not valid, return the token type instead
  if ( Grammar.INVALID_TOKEN_NAME.equals(name) ) {
    return String.valueOf(ttype);
  }
  return name;
}

代码示例来源:origin: uk.co.nichesolutions/antlr4

/** Get a meaningful name for a token type useful during code generation.
 *  Literals without associated names are converted to the string equivalent
 *  of their integer values. Used to generate x==ID and x==34 type comparisons
 *  etc...  Essentially we are looking for the most obvious way to refer
 *  to a token type in the generated code.
 */
public String getTokenTypeAsTargetLabel(Grammar g, int ttype) {
  String name = g.getTokenName(ttype);
  // If name is not valid, return the token type instead
  if ( Grammar.INVALID_TOKEN_NAME.equals(name) ) {
    return String.valueOf(ttype);
  }
  return name;
}

代码示例来源:origin: com.impetus.fabric/fabric-jdbc-driver-shaded

/** Get a meaningful name for a token type useful during code generation.
 *  Literals without associated names are converted to the string equivalent
 *  of their integer values. Used to generate x==ID and x==34 type comparisons
 *  etc...  Essentially we are looking for the most obvious way to refer
 *  to a token type in the generated code.
 */
public String getTokenTypeAsTargetLabel(Grammar g, int ttype) {
  String name = g.getTokenName(ttype);
  // If name is not valid, return the token type instead
  if ( Grammar.INVALID_TOKEN_NAME.equals(name) ) {
    return String.valueOf(ttype);
  }
  return name;
}

代码示例来源:origin: com.tunnelvisionlabs/antlr4

/** Get a meaningful name for a token type useful during code generation.
 *  Literals without associated names are converted to the string equivalent
 *  of their integer values. Used to generate x==ID and x==34 type comparisons
 *  etc...  Essentially we are looking for the most obvious way to refer
 *  to a token type in the generated code.
 */
public String getTokenTypeAsTargetLabel(Grammar g, int ttype) {
  String name = g.getTokenName(ttype);
  // If name is not valid, return the token type instead
  if ( Grammar.INVALID_TOKEN_NAME.equals(name) ) {
    return String.valueOf(ttype);
  }
  return name;
}

代码示例来源:origin: io.virtdata/virtdata-lib-realer

/** Get a meaningful name for a token type useful during code generation.
 *  Literals without associated names are converted to the string equivalent
 *  of their integer values. Used to generate x==ID and x==34 type comparisons
 *  etc...  Essentially we are looking for the most obvious way to refer
 *  to a token type in the generated code.
 */
public String getTokenTypeAsTargetLabel(Grammar g, int ttype) {
  String name = g.getTokenName(ttype);
  // If name is not valid, return the token type instead
  if ( Grammar.INVALID_TOKEN_NAME.equals(name) ) {
    return String.valueOf(ttype);
  }
  return name;
}

代码示例来源:origin: org.antlr/antlr4

/**
 * Gets an array of token names for tokens defined or imported by the
 * grammar. The array index is the token type, and the value is the result
 * of {@link #getTokenName} for the corresponding token type.
 *
 * @see #getTokenName
 * @return The token names of all tokens defined in the grammar.
 */
public String[] getTokenNames() {
  int numTokens = getMaxTokenType();
  String[] tokenNames = new String[numTokens+1];
  for (int i = 0; i < tokenNames.length; i++) {
    tokenNames[i] = getTokenName(i);
  }
  return tokenNames;
}

代码示例来源:origin: com.tunnelvisionlabs/antlr4

/**
 * Gets an array of token names for tokens defined or imported by the
 * grammar. The array index is the token type, and the value is the result
 * of {@link #getTokenName} for the corresponding token type.
 *
 * @see #getTokenName
 * @return The token names of all tokens defined in the grammar.
 */
public String[] getTokenNames() {
  int numTokens = getMaxTokenType();
  String[] tokenNames = new String[numTokens+1];
  for (int i = 0; i < tokenNames.length; i++) {
    tokenNames[i] = getTokenName(i);
  }
  return tokenNames;
}

代码示例来源:origin: uk.co.nichesolutions/antlr4

/**
 * Gets an array of token names for tokens defined or imported by the
 * grammar. The array index is the token type, and the value is the result
 * of {@link #getTokenName} for the corresponding token type.
 *
 * @see #getTokenName
 * @return The token names of all tokens defined in the grammar.
 */
public String[] getTokenNames() {
  int numTokens = getMaxTokenType();
  String[] tokenNames = new String[numTokens+1];
  for (int i = 0; i < tokenNames.length; i++) {
    tokenNames[i] = getTokenName(i);
  }
  return tokenNames;
}

代码示例来源:origin: com.impetus.fabric/fabric-jdbc-driver-shaded

/**
 * Gets an array of token names for tokens defined or imported by the
 * grammar. The array index is the token type, and the value is the result
 * of {@link #getTokenName} for the corresponding token type.
 *
 * @see #getTokenName
 * @return The token names of all tokens defined in the grammar.
 */
public String[] getTokenNames() {
  int numTokens = getMaxTokenType();
  String[] tokenNames = new String[numTokens+1];
  for (int i = 0; i < tokenNames.length; i++) {
    tokenNames[i] = getTokenName(i);
  }
  return tokenNames;
}

代码示例来源:origin: io.virtdata/virtdata-lib-realer

/**
 * Gets an array of token names for tokens defined or imported by the
 * grammar. The array index is the token type, and the value is the result
 * of {@link #getTokenName} for the corresponding token type.
 *
 * @see #getTokenName
 * @return The token names of all tokens defined in the grammar.
 */
public String[] getTokenNames() {
  int numTokens = getMaxTokenType();
  String[] tokenNames = new String[numTokens+1];
  for (int i = 0; i < tokenNames.length; i++) {
    tokenNames[i] = getTokenName(i);
  }
  return tokenNames;
}

代码示例来源:origin: org.antlr/antlr4

@Override
public void stringRef(TerminalAST ref) {
  String tokenName = ref.g.getTokenName(ref.getText());
  if (tokenName != null && !tokenName.startsWith("T__")) {
    frequencies.peek().add(tokenName);
    minFrequencies.peek().add(tokenName);
  }
}

代码示例来源:origin: org.antlr/antlr4

private String getName(GrammarAST token) {
  String tokenText = token.getText();
  String tokenName = token.getType() != STRING_LITERAL ? tokenText : token.g.getTokenName(tokenText);
  return tokenName == null || tokenName.startsWith("T__") ? null : tokenName; // Do not include tokens with auto generated names
}

代码示例来源:origin: com.tunnelvisionlabs/antlr4

@Override
public void stringRef(TerminalAST ref) {
  String tokenName = ref.g.getTokenName(ref.getText());
  if (tokenName != null && !tokenName.startsWith("T__")) {
    frequencies.peek().add(tokenName);
    minFrequencies.peek().add(tokenName);
  }
}

代码示例来源:origin: com.tunnelvisionlabs/antlr4

public static String getLabelName(Grammar g, GrammarAST t) {
  String tokenText = t.getText();
  String tokenName = t.getType() != STRING_LITERAL ? tokenText : g.getTokenName(tokenText);
  if (tokenName == null || tokenName.startsWith("T__")) {
    // Do not include tokens with auto generated names
    return null;
  }
  String labelName = tokenName;
  Rule referencedRule = g.rules.get(labelName);
  if (referencedRule != null) {
    labelName = referencedRule.getBaseContext();
  }
  return labelName;
}

相关文章