public void add(String filePath, String languageName, String moduleName, int lineCount) {
    // Get rid of Microsoft's incompatibility once and forever
    filePath = filePath.replace("\\", DIRECTORY_SEPARATOR);

    String folderPath = extractFolder(filePath);

    File file = new File(filePath, languageName, moduleName, lineCount);
    this.addFile(file);

    Folder folder = this.getFolder(folderPath);
    if (folder == null) {
      folder = new Folder(folderPath);
      this.addFolder(folder);
    }
    folder.addFile(file);

    Language language = this.getLanguage(languageName);
    if (language == null) {
      language = new Language(languageName);
      this.addLanguage(language);
    }
    language.addFile(file);

    Module module = getModule(moduleName);
    if (module == null) {
      module = new Module(moduleName);
      this.addModule(module);
    }
    module.addFile(file);
  }
Example #2
0
  private static SModule getModuleForModel(MPSProject project, SModel model) {
    // language's and solution's own models (+generator models in language)
    SModule owner = model.getModule();
    SModule mainModule =
        owner instanceof Generator ? ((Generator) owner).getSourceLanguage() : owner;
    if (project.isProjectModule(mainModule)) return owner;

    // accessories models in languages
    /*
      //with this enabled, alt-f1 does not work in case node is in non-owned accessory model to a project language
      for (Language l : project.getProjectLanguages()) {
        if (l.isAccessoryModel(model.getSModelReference())) return l;
      }
    */

    // runtime models in languages
    for (Language l : project.getProjectModules(Language.class)) {
      for (SModuleReference depModule : l.getRuntimeModulesReferences()) {
        if (depModule.equals(mainModule.getModuleReference())) return owner;
      }
    }

    // accessories models in devkits

    // runtime models in devkits

    return owner;
  }
Example #3
0
 /**
  * Reads parse trees either from standard input or a specified file, converting them to sentences
  * and printing those sentences on standard output.
  *
  * <pre>
  * usage: [-v|-help|-usage] [-tags] [filename]
  *         -v|-help|-usage: prints out this message
  *         -tags: indicates to spit out one S-expression per word, of the form
  *                 (word (tag))
  *         filename is the file to be processed (standard input is assumed if
  *                 this argument is "-" or is not present)
  * </pre>
  */
 public static void main(String[] args) {
   InputStream inStream = System.in;
   boolean tags = false;
   String inFile = null;
   for (int i = 0; i < args.length; i++) {
     if (args[i].equals("-help") || args[i].equals("-usage") || args[i].equals("-v")) {
       usage();
       return;
     } else if (args[i].equals("-tags")) tags = true;
     else if (!args[i].equals("-")) inFile = args[i];
   }
   if (inFile != null) {
     try {
       inStream = new FileInputStream(inFile);
     } catch (FileNotFoundException fnfe) {
       System.err.println(fnfe);
       System.exit(-1);
     }
   }
   try {
     SexpTokenizer tok = new SexpTokenizer(inStream, Language.encoding(), bufSize);
     OutputStream os = System.out;
     Writer writer = new BufferedWriter(new OutputStreamWriter(os, Language.encoding()));
     PrintWriter pw = new PrintWriter(writer);
     Sexp curr = null;
     while ((curr = Sexp.read(tok)) != null)
       pw.println(tags ? Util.collectTaggedWords(curr) : Util.collectLeaves(curr));
     pw.flush();
     pw.close();
   } catch (Exception e) {
     System.out.println(e);
   }
 }
Example #4
0
 public void testTranslationKeyExistence() throws IOException {
   // use English version as the reference:
   final File englishFile = getEnglishTranslationFile();
   final Properties enProps = new Properties();
   enProps.load(new FileInputStream(englishFile));
   final Set<Object> englishKeys = enProps.keySet();
   for (Language lang : Language.REAL_LANGUAGES) {
     if (lang.getShortName().equals("en")) {
       continue;
     }
     final Properties langProps = new Properties();
     final File langFile = getTranslationFile(lang);
     if (!langFile.exists()) {
       continue;
     }
     try (FileInputStream stream = new FileInputStream(langFile)) {
       langProps.load(stream);
       final Set<Object> langKeys = langProps.keySet();
       for (Object englishKey : englishKeys) {
         if (!langKeys.contains(englishKey)) {
           System.err.println("***** No key '" + englishKey + "' in file " + langFile);
         }
       }
     }
   }
 }
Example #5
0
  @Override
  public org.jetbrains.mps.openapi.model.SModel resolve(
      org.jetbrains.mps.openapi.model.SModelReference reference) {
    if (reference == null) {
      return null;
    }

    SModel model = SModelRepository.getInstance().getModelDescriptor(reference.getModelId());

    if (model == null) {
      return null;
    }

    synchronized (LOCK) {
      initialize();

      if (myVisibleModules.contains(model.getModule())) return model;

      for (Language l : myUsedLanguages) {
        if (l.getAccessoryModels().contains(model)) return model;
      }
    }

    return null;
  }
Example #6
0
  public static List<SModelDescriptor> getLanguageModels(Language lang) {
    List<SModelDescriptor> inputModels = new ArrayList<SModelDescriptor>();
    for (LanguageAspect aspect : LanguageAspect.values()) {
      SModelDescriptor model = aspect.get(lang);
      if (model != null) {
        inputModels.add(model);
      }
    }

    Set<SModelDescriptor> ownModels = new HashSet<SModelDescriptor>(lang.getOwnModelDescriptors());
    for (SModelDescriptor sm : lang.getAccessoryModels()) {
      if (!SModelStereotype.isUserModel(sm)) continue;
      if (!(sm instanceof EditableSModelDescriptor)) continue;

      if (ownModels.contains(sm)) {
        inputModels.add(((EditableSModelDescriptor) sm));
      }
    }

    inputModels.addAll(lang.getUtilModels());

    // add it from all generators
    List<Generator> list = lang.getGenerators();
    for (Generator generator : list) {
      inputModels.addAll(generator.getGeneratorModels());
    }
    return inputModels;
  }
Example #7
0
 @Override
 public int hashCode() {
   int h = 0;
   for (Language l : path) {
     h = h * 31 + l.hashCode();
   }
   return h;
 }
 public static Language fromString(final String pLanguage) {
   for (Language l : values()) {
     if (pLanguage.equals(l.toString())) {
       return l;
     }
   }
   return null;
 }
Example #9
0
 public static void updateLanguageClasspath(Language l, String classpath) {
   LanguageDescriptor languageDescriptor = l.getModuleDescriptor();
   ClassPathEntry cpEntry = new ClassPathEntry();
   cpEntry.setPath(classpath);
   languageDescriptor
       .getStubModelEntries()
       .add(jetbrains.mps.project.structure.model.ModelRootUtil.fromClassPathEntry(cpEntry));
   l.setLanguageDescriptor(languageDescriptor, false);
 }
 public Language getLongestLanguage() {
   Language longest = null;
   for (Language l : this.getLanguages()) {
     if (longest == null || l.getLineCount() > longest.getLineCount()) {
       longest = l;
     }
   }
   return longest;
 }
 public void setBundle(Language lang) {
   if (lang == null || lang.equals(this.bundle)) {
     return;
   }
   setLanguage(lang);
   bundle = ResourceBundle.getBundle("lang", new Locale(lang.getValue(), lang.toString()));
   setChanged();
   notifyObservers();
 }
Example #12
0
  private void refreshLanguage() {
    hideJunkMessagesCheckBox.setText(language.getString("Options.junk.hideJunkMessages"));
    markJunkIdentityBadCheckBox.setText(language.getString("Options.junk.markJunkIdentityBad"));

    stopBoardUpdatesWhenDosedCheckBox.setText(
        language.getString("Options.junk.stopBoardUpdatesWhenDosed"));
    LinvalidSubsequentMessagesThreshold.setText(
        language.getString("Options.junk.invalidSubsequentMessagesThreshold"));
  }
Example #13
0
 @Override
 protected Pane createPane() {
   if (language.useMultiview()) {
     return (CloneableEditorSupport.Pane)
         MultiViews.createCloneableMultiView(language.getMimeType(), getDataObject());
   } else {
     return super.createPane();
   }
 }
Example #14
0
 private void fillInLanguages() {
   myUsedLanguages = new HashSet<Language>();
   myUsedLanguages.addAll(getInitialUsedLanguages());
   for (DevKit dk : myUsedDevkits) {
     myUsedLanguages.addAll(dk.getAllExportedLanguages());
   }
   for (Language l : new ArrayList<Language>(myUsedLanguages)) {
     l.getDependenciesManager().collectAllExtendedLanguages(myUsedLanguages);
   }
 }
  public Collection<Language> getAllExtendingLanguages(Language l) {
    List<Language> result = new LinkedList<Language>();
    for (Language lang : getAllModules(Language.class)) {

      if (ModuleUtil.refsToLanguages(lang.getExtendedLanguageRefs()).contains(l)) {
        result.add(lang);
      }
    }
    return result;
  }
Example #16
0
 private File getTranslationFileWithVariant(Language lang) {
   final String langCode = lang.getShortName();
   final String name =
       "../languagetool-language-modules/"
           + langCode
           + "/src/main/resources/org/languagetool"
           + "/MessagesBundle_"
           + lang.getShortNameWithVariant().replace('-', '_')
           + ".properties";
   return new File(name.replace("/", File.separator));
 }
  public Event getHistory(TrainerEvent trainerEvent, int backOffLevel) {
    ModifierEvent modEvent = (ModifierEvent) trainerEvent;

    if (Language.treebank().isBaseNP(modEvent.parent()))
      return getBaseNPHistory(modEvent, backOffLevel);

    Symbol side = Constants.sideToSym(modEvent.side());

    MutableEvent hist = historiesWithSubcats[backOffLevel];

    hist.clear();
    Symbol verbInterveningSym = Constants.booleanToSym(modEvent.verbIntervening());
    Symbol mappedPrevModSym = NTMapper.map(modEvent.previousMods().symbolAt(0));
    Symbol parent = Language.training().removeArgAugmentation(modEvent.parent());

    switch (backOffLevel) {
      case 0:
        // for p(M(t)_i | P, H, w, t, verbIntervening, map(M_i-1), subcat, side)
        hist.add(0, parent);
        hist.add(0, Language.training().removeGapAugmentation(modEvent.head()));
        hist.add(0, modEvent.headWord().word());
        hist.add(0, modEvent.headWord().tag());
        hist.add(0, verbInterveningSym);
        hist.add(0, mappedPrevModSym);
        hist.add(1, modEvent.subcat());
        hist.add(0, side);
        break;
      case 1:
        // for p(M(t)_i | P, H, t, verbIntervening, map(M_i-1), subcat, side)
        hist.add(0, parent);
        hist.add(0, Language.training().removeGapAugmentation(modEvent.head()));
        hist.add(0, modEvent.headWord().tag());
        hist.add(0, verbInterveningSym);
        hist.add(0, mappedPrevModSym);
        hist.add(1, modEvent.subcat());
        hist.add(0, side);
        break;
      case 2:
        // for p(M(t)_i | P, H, verbIntervening, map(M_i-1), subcat, side)
        hist.add(0, parent);
        hist.add(0, Language.training().removeGapAugmentation(modEvent.head()));
        hist.add(0, verbInterveningSym);
        hist.add(0, mappedPrevModSym);
        hist.add(1, modEvent.subcat());
        hist.add(0, side);
        break;
      case 3:
        // for p(M(t)_i | P, subcat)
        hist.add(0, parent);
        hist.add(1, modEvent.subcat());
        break;
    }
    return hist;
  }
 public static void initState(
     ErrorState state, PsiBuilder builder, IElementType root, TokenSet[] extendsSets) {
   state.extendsSets = extendsSets;
   PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
   state.completionState = file == null ? null : file.getUserData(COMPLETION_STATE_KEY);
   Language language = file == null ? root.getLanguage() : file.getLanguage();
   state.caseSensitive = language.isCaseSensitive();
   PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
   state.braces = matcher == null ? null : matcher.getPairs();
   if (state.braces != null && state.braces.length == 0) state.braces = null;
 }
  /**
   * This writes the the language yml file.
   *
   * @throws IOException
   */
  private void writeLanguageConfig() throws IOException {
    for (Language g : Language.values()) {
      String path = g.getPath();
      this.configLanguage.set(path, g.getSentence());
    }

    String contentToSave = this.configLanguage.saveToString();
    Writer out = new OutputStreamWriter(new FileOutputStream(this.fileLanguage), "UTF-8");
    out.write(contentToSave);
    out.flush();
    out.close();
  }
  public boolean hasLanguage(Language language) {
    if (!myFindUsagesSupported) return false;

    if (myNeedSearchForStrings
        && !myModelRootManager.containsString(myModelDescriptor, language.getModuleFqName()))
      return false;

    SModel model = myModelDescriptor.getSModel();
    if (model == null) return false;

    return SModelOperations.hasLanguage(model, language.getModuleReference());
  }
Example #21
0
  @Test
  public void testUsedLanguageDependencyNotInScope() {
    Solution s1 = createSolution();

    Solution ld = createSolution();
    Language l1 = createLanguage();
    l1.addDependency(ld.getModuleReference(), true);

    s1.addUsedLanguage(l1.getModuleReference());

    assertFalse(new GlobalModuleDependenciesManager(s1).getModules(Deptype.VISIBLE).contains(ld));
    assertFalse(IterableUtil.asCollection(s1.getScope().getVisibleModules()).contains(ld));
  }
  /** Loads the language file, that is setted in conig.yml */
  public void loadLanguageConfig() throws Exception {
    if (!new File(this.getDataFolder() + File.separator + "language").exists()) {
      new File(this.getDataFolder() + File.separator + "language").mkdirs();
    }

    String encoding = "UTF-8";
    if (!this.fileLanguage.exists()) {
      this.fileLanguage.createNewFile(); // create file
      this.writeLanguageConfig(); // write standard language
    } else {
      Scanner scanner = new Scanner(new FileInputStream(this.fileLanguage), encoding);
      String contentToRead = "";
      while (scanner.hasNextLine()) {
        contentToRead += scanner.nextLine() + System.getProperty("line.separator");
      }
      scanner.close();

      try {
        this.configLanguage.loadFromString(contentToRead);
      } catch (InvalidConfigurationException e) {
        encoding = "Cp1252";
        scanner = new Scanner(new FileInputStream(this.fileLanguage), encoding);
        contentToRead = "";
        while (scanner.hasNextLine()) {
          contentToRead += scanner.nextLine() + System.getProperty("line.separator");
        }
        scanner.close();
        this.configLanguage.loadFromString(contentToRead);
      }

      boolean missing = false;
      for (Language g : Language.values()) {
        String path = g.getPath();
        if (!this.configLanguage.contains(path)) {
          this.configLanguage.set(path, g.getSentence());
          missing = true;
        } else {
          g.setSentence(this.replaceColor(this.configLanguage.getString(path)));
        }
      }

      if (missing) {
        String contentToSave = this.configLanguage.saveToString();
        Writer out = new OutputStreamWriter(new FileOutputStream(this.fileLanguage), encoding);
        out.write(contentToSave);
        out.flush();
        out.close();
      }
    }
    SkyBlockMultiplayer.getInstance().getSkyBlockWorld();
  }
 private static void initState(IElementType root, PsiBuilder builder, ErrorState state) {
   PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
   state.completionState = file == null ? null : file.getUserData(COMPLETION_STATE_KEY);
   Language language = file == null ? root.getLanguage() : file.getLanguage();
   state.caseSensitive = language.isCaseSensitive();
   ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(language);
   if (parserDefinition != null) {
     state.commentTokens = parserDefinition.getCommentTokens();
     state.whitespaceTokens = parserDefinition.getWhitespaceTokens();
   }
   PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
   state.braces = matcher == null ? null : matcher.getPairs();
   if (state.braces != null && state.braces.length == 0) state.braces = null;
 }
Example #24
0
  public Language reverse(final Language language) {
    Language result = new Language();
    String word = "";

    for (String wordAux : language.getWordList()) {
      for (int i = wordAux.length() - 1; i >= 0; i--) {
        word = word.concat(String.valueOf(wordAux.charAt(i)));
      }
      result.addWord(word);
      word = "";
    }

    return result;
  }
Example #25
0
  private Event getBaseNPHistory(ModifierEvent modEvent, int backOffLevel) {
    MutableEvent hist = histories[backOffLevel];

    Symbol side = Constants.sideToSym(modEvent.side());

    Symbol prevModLabel =
        (modEvent.previousMods().get(0) == startSym
            ? modEvent.head()
            : modEvent.previousMods().symbolAt(0));
    Word prevModWord =
        (modEvent.previousWords().getWord(0).equals(startWord)
            ? modEvent.headWord()
            : modEvent.previousWords().getWord(0));
    hist.clear();
    switch (backOffLevel) {
      case 0:
        // for p(t_i | M_i, P, M(w,t)_i-1, side)
        hist.add(modEvent.modifier());
        hist.add(Language.training().removeGapAugmentation(modEvent.parent()));
        hist.add(prevModLabel);
        hist.add(prevModWord.word());
        hist.add(prevModWord.tag());
        hist.add(side);
        break;
      case 1:
        // for p(t_i | M_i, P, M(t)_i-1, side)
        hist.add(modEvent.modifier());
        hist.add(Language.training().removeGapAugmentation(modEvent.parent()));
        hist.add(prevModLabel);
        hist.add(prevModWord.tag());
        hist.add(side);
        break;
      case 2:
        // for p(t_i | M_i, P, M_i-1, side)
        hist.add(modEvent.modifier());
        hist.add(Language.training().removeGapAugmentation(modEvent.parent()));
        hist.add(prevModLabel);
        hist.add(side);
        break;
        /*
        case 3:
          // for p(t_i | M_i, P)
          hist.add(modEvent.modifier());
          hist.add(Language.training().removeGapAugmentation(modEvent.parent()));
          break;
          */
    }
    return hist;
  }
Example #26
0
  public Language product(final Language language1, final Language language2) {
    Language result = new Language();
    String word = null;

    for (String word1 : language1.getWordList()) {
      for (String word2 : language2.getWordList()) {
        word = word1.concat(word2);
        if (!result.belongs(word)) {
          result.addWord(word);
        }
      }
    }

    return result;
  }
Example #27
0
 @Override
 public Iterable<SModel> getModels() {
   List<SModel> result = new ArrayList<SModel>();
   synchronized (LOCK) {
     initialize();
     for (IModule module : myVisibleModules) {
       result.addAll(IterableUtil.asCollection(module.getModels()));
     }
     for (Language language : myUsedLanguages) {
       result.addAll(language.getModels()); // todo: ?
       result.addAll(language.getAccessoryModels());
     }
   }
   return result;
 }
Example #28
0
  /**
   * Creates a new Language and adds it into the Collection.
   *
   * @param words Words of the language that will be created.
   * @throws JOpLenException If something goes wrong.
   */
  public void newLanguage(String[] words) throws JOpLenException {
    Language language = new Language();

    for (String word : words) {
      if (belongsToAlphabet(word)) {
        language.addWord(word);
      } else {
        throw new JOpLenException(
            "Los símbolos de la palabra '" + word + "' no pertenecen al alfabeto");
      }
    }

    language.setName(NameFactory.getInstance().getLanguageName());
    addLanguage(language);
  }
Example #29
0
 public static void atack(Attacking attacking, int x, int y) {
   // AI.getAttackCoordinate();
   resultOfAttack = Ships.attack(attacking, x, y);
   if (resultOfAttack == ResultOfAttack.KILLED_ALL) {
     if (attacking == Attacking.COMPUTER) {
       Display.writeText(Language.GetWord(4));
     }
     if (attacking == Attacking.PLAYER) {
       Display.writeText(Language.GetWord(3));
     }
   }
   if (resultOfAttack == ResultOfAttack.IT_WAS) {
     Display.writeText(Language.GetWord(5));
   }
 }
 private boolean isTrackingLanguageSimple(String trackingLanguage, String... keyWords) {
   List<Language> languageWords = languageRepository.findByLanguage(trackingLanguage);
   int counter = 0;
   for (Language languageWord : languageWords) {
     for (String keyWord : keyWords) {
       if (keyWord.equalsIgnoreCase(languageWord.getWord())) {
         counter++;
         break;
       }
     }
     if (counter >= 2) {
       return true;
     }
   }
   return false;
 }