/* * Copyright 2011-present Greg Shrago * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.intellij.grammar.generator; import com.intellij.openapi.application.ApplicationManager; import org.jetbrains.annotations.NotNull; /** * @author greg */ class Names { public final String builder; public final String level; public final String marker; public final String pinned; public final String result; public final String pos; public final String root; public final String priority; public final String argPrefix; public final String psiLocal = "p"; private Names(String builder, String level, String marker, String pinned, String result, String pos, String root, String priority, String argPrefix) { this.builder = builder; this.level = level; this.marker = marker; this.pinned = pinned; this.result = result; this.pos = pos; this.root = root; this.priority = priority; this.argPrefix = argPrefix; } public static Names classicNames() { return new Names("builder_", "level_", "marker_", "pinned_", "result_", "pos_", "root_", "priority_", ""); } public static Names longNames() { return new Names("builder", "level", "marker", "pinned", "result", "pos", "type", "priority", "a"); } public static Names shortNames() { return new Names("b", "l", "m", "p", "r", "c", "t", "g", "_"); } @NotNull public static Names forName(String name) { if ("long".equals(name)) return longNames(); if ("short".equals(name)) return shortNames(); if ("classic".equals(name)) return classicNames(); return ApplicationManager.getApplication().isUnitTestMode() ? classicNames() : shortNames(); } }