Package org.angularjs.lang.parser

Source Code of org.angularjs.lang.parser.AngularJSParserDefinition

package org.angularjs.lang.parser;

import com.intellij.lang.ASTNode;
import com.intellij.lang.PsiParser;
import com.intellij.lang.javascript.JavascriptParserDefinition;
import com.intellij.lang.javascript.types.JSFileElementType;
import com.intellij.lexer.Lexer;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.IFileElementType;
import org.angularjs.lang.AngularJSLanguage;
import org.angularjs.lang.lexer.AngularJSLexer;
import org.angularjs.lang.psi.AngularJSAsExpression;
import org.angularjs.lang.psi.AngularJSFilterExpression;
import org.angularjs.lang.psi.AngularJSRepeatExpression;
import org.jetbrains.annotations.NotNull;

/**
* @author Dennis.Ushakov
*/
public class AngularJSParserDefinition extends JavascriptParserDefinition {
  private static final IFileElementType FILE = new JSFileElementType(AngularJSLanguage.INSTANCE);

  @NotNull
  @Override
  public Lexer createLexer(Project project) {
    return new AngularJSLexer();
  }

  @NotNull
  @Override
  public PsiParser createParser(Project project) {
    return new AngularParser();
  }

  @NotNull
  @Override
  public PsiElement createElement(ASTNode node) {
    final IElementType type = node.getElementType();
    if (type == AngularJSElementTypes.REPEAT_EXPRESSION) {
      return new AngularJSRepeatExpression(node);
    } else if (type == AngularJSElementTypes.FILTER_EXPRESSION) {
      return new AngularJSFilterExpression(node);
    } else if (type == AngularJSElementTypes.AS_EXPRESSION) {
      return new AngularJSAsExpression(node);
    }
    return super.createElement(node);
  }

  @Override
  public IFileElementType getFileNodeType() {
    return FILE;
  }
}
TOP

Related Classes of org.angularjs.lang.parser.AngularJSParserDefinition

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.