Class ParserGeneratorUtil


  • public class ParserGeneratorUtil
    extends java.lang.Object
    • Constructor Detail

      • ParserGeneratorUtil

        public ParserGeneratorUtil()
    • Method Detail

      • enumFromString

        @NotNull
        public static <T extends java.lang.Enum<T>> T enumFromString​(@Nullable
                                                                     @Nullable java.lang.String value,
                                                                     @NotNull
                                                                     T def)
      • getGenerateOption

        public static <T> T getGenerateOption​(@NotNull
                                              @NotNull com.intellij.psi.PsiElement node,
                                              @NotNull
                                              @NotNull KnownAttribute<T> attribute,
                                              @NotNull
                                              @NotNull java.util.Map<java.lang.String,​java.lang.String> genOptions,
                                              java.lang.String... genOptionKeys)
      • getRootAttribute

        public static <T> T getRootAttribute​(@NotNull
                                             @NotNull com.intellij.psi.PsiElement node,
                                             @NotNull
                                             @NotNull KnownAttribute<T> attribute)
      • getRootAttribute

        public static <T> T getRootAttribute​(@NotNull
                                             @NotNull com.intellij.psi.PsiElement node,
                                             @NotNull
                                             @NotNull KnownAttribute<T> attribute,
                                             @Nullable
                                             @Nullable java.lang.String match)
      • getAttribute

        public static <T> T getAttribute​(@NotNull
                                         @NotNull BnfRule rule,
                                         @NotNull
                                         @NotNull KnownAttribute<T> attribute)
      • findAttribute

        @Nullable
        public static <T> @Nullable BnfAttr findAttribute​(@NotNull
                                                          @NotNull BnfRule rule,
                                                          @NotNull
                                                          @NotNull KnownAttribute<T> attribute)
      • getAttribute

        public static <T> T getAttribute​(@NotNull
                                         @NotNull BnfRule rule,
                                         @NotNull
                                         @NotNull KnownAttribute<T> attribute,
                                         @Nullable
                                         @Nullable java.lang.String match)
      • getAttributeValue

        public static java.lang.Object getAttributeValue​(BnfExpression value)
      • isTrivialNode

        public static boolean isTrivialNode​(com.intellij.psi.PsiElement element)
      • getTrivialNodeChild

        public static BnfExpression getTrivialNodeChild​(com.intellij.psi.PsiElement element)
      • getEffectiveType

        public static com.intellij.psi.tree.IElementType getEffectiveType​(com.intellij.psi.PsiElement tree)
      • getChildExpressions

        public static java.util.List<BnfExpression> getChildExpressions​(@Nullable
                                                                        @Nullable BnfExpression node)
      • getFuncName

        public static java.lang.String getFuncName​(@NotNull
                                                   @NotNull BnfRule r)
      • getNextName

        public static java.lang.String getNextName​(@NotNull
                                                   @NotNull java.lang.String funcName,
                                                   int i)
      • getGetterName

        @NotNull
        public static @NotNull java.lang.String getGetterName​(@NotNull
                                                              @NotNull java.lang.String text)
      • toIdentifier

        @TestOnly
        @NotNull
        public static @NotNull java.lang.String toIdentifier​(@NotNull
                                                             @NotNull java.lang.String text,
                                                             @Nullable
                                                             @Nullable ParserGeneratorUtil.NameFormat format,
                                                             @NotNull
                                                             @NotNull Case cas)
      • getRulePsiClassName

        @NotNull
        public static @NotNull java.lang.String getRulePsiClassName​(@NotNull
                                                                    @NotNull BnfRule rule,
                                                                    @Nullable
                                                                    @Nullable ParserGeneratorUtil.NameFormat format)
      • getQualifiedRuleClassName

        public static com.intellij.openapi.util.Couple<java.lang.String> getQualifiedRuleClassName​(BnfRule rule)
      • findRuleImplMethods

        @NotNull
        public static @NotNull java.util.List<com.intellij.psi.NavigatablePsiElement> findRuleImplMethods​(@NotNull
                                                                                                          @NotNull JavaHelper helper,
                                                                                                          @Nullable
                                                                                                          @Nullable java.lang.String psiImplUtilClass,
                                                                                                          @Nullable
                                                                                                          @Nullable java.lang.String methodName,
                                                                                                          @Nullable
                                                                                                          @Nullable BnfRule rule)
      • getRuleClasses

        @NotNull
        public static @NotNull java.util.Set<java.lang.String> getRuleClasses​(@NotNull
                                                                              @NotNull BnfRule rule)
      • getRuleDisplayName

        @Nullable
        public static @Nullable java.lang.String getRuleDisplayName​(BnfRule rule,
                                                                    boolean force)
      • getElementType

        public static java.lang.String getElementType​(BnfRule rule,
                                                      @NotNull
                                                      @NotNull Case cas)
      • getTokenType

        public static java.lang.String getTokenType​(BnfFile file,
                                                    java.lang.String token,
                                                    @NotNull
                                                    @NotNull Case cas)
      • getSortedPublicRules

        public static java.util.Collection<BnfRule> getSortedPublicRules​(java.util.Set<com.intellij.psi.PsiElement> accessors)
      • getSortedTokens

        public static java.util.Collection<BnfExpression> getSortedTokens​(java.util.Set<com.intellij.psi.PsiElement> accessors)
      • getSortedExternalRules

        public static java.util.Collection<com.intellij.psi.impl.source.tree.LeafPsiElement> getSortedExternalRules​(java.util.Set<com.intellij.psi.PsiElement> accessors)
      • topoSort

        public static java.util.List<BnfRule> topoSort​(@NotNull
                                                       @NotNull java.util.Collection<BnfRule> rules,
                                                       @NotNull
                                                       @NotNull RuleGraphHelper ruleGraph)
      • isRegexpToken

        public static boolean isRegexpToken​(@NotNull
                                            @NotNull java.lang.String tokenText)
      • getRegexpTokenRegexp

        public static java.lang.String getRegexpTokenRegexp​(@NotNull
                                                            @NotNull java.lang.String tokenText)
      • isTokenSequence

        public static boolean isTokenSequence​(@NotNull
                                              @NotNull BnfRule rule,
                                              @Nullable
                                              @Nullable BnfExpression node)
      • appendTokenTypes

        public static void appendTokenTypes​(java.lang.StringBuilder sb,
                                            java.util.List<java.lang.String> tokenTypes)
      • collectTokenPattern2Name

        public static java.util.Map<java.lang.String,​java.lang.String> collectTokenPattern2Name​(@NotNull
                                                                                                      @NotNull BnfFile file,
                                                                                                      boolean createTokenIfMissing,
                                                                                                      @NotNull
                                                                                                      @NotNull java.util.Map<java.lang.String,​java.lang.String> map,
                                                                                                      @Nullable
                                                                                                      @Nullable java.util.Set<java.lang.String> usedInGrammar)
      • quote

        @Nullable
        public static @Nullable java.lang.String quote​(@Nullable
                                                       @Nullable java.lang.String text)
      • compilePattern

        @Nullable
        public static @Nullable java.util.regex.Pattern compilePattern​(java.lang.String text)
      • matchesAny

        public static boolean matchesAny​(java.lang.String regexp,
                                         java.lang.String... text)
      • getAllTokenPattern

        @Nullable
        public static @Nullable java.util.regex.Pattern getAllTokenPattern​(java.util.Map<java.lang.String,​java.lang.String> tokens)
      • getParametersString

        public static java.lang.String getParametersString​(java.util.List<java.lang.String> paramsTypes,
                                                           int offset,
                                                           int mask,
                                                           com.intellij.util.Function<java.lang.String,​java.lang.String> substitutor,
                                                           com.intellij.util.Function<java.lang.Integer,​java.util.List<java.lang.String>> annoProvider,
                                                           NameShortener shortener)
      • unwrapTypeArgumentForParamList

        @NotNull
        public static @NotNull java.lang.String unwrapTypeArgumentForParamList​(java.lang.String type)
      • getThrowsString

        @NotNull
        public static @NotNull java.lang.String getThrowsString​(java.util.List<java.lang.String> exceptionList,
                                                                NameShortener shortener)
      • textStrategy

        public static <T extends com.intellij.psi.PsiElement> gnu.trove.TObjectHashingStrategy<T> textStrategy()