// Path: src/com/equadon/intellij/mips/lang/lexer/MipsLexerAdapter.java
// public class MipsLexerAdapter extends LookAheadLexer {
//   public MipsLexerAdapter() {
//     super(new MergingLexerAdapter(new FlexAdapter(new __MipsLexer()), MipsTokenTypes.COMMENTS));
//   }
// }
// 
// Path: src/com/equadon/intellij/mips/lang/psi/impl/MipsFileImpl.java
// public class MipsFileImpl extends PsiFileBase implements MipsFile {
//   public MipsFileImpl(@NotNull FileViewProvider viewProvider) {
//     super(viewProvider, MipsLanguage.INSTANCE);
//   }
// 
//   @NotNull
//   @Override
//   public FileType getFileType() {
//     return getViewProvider().getFileType();
//   }
// 
//   @Override
//   public Collection<MipsLabelDefinition> getLabelDefinitions() {
//     return PsiTreeUtil.findChildrenOfType(this, MipsLabelDefinition.class);
//   }
// }
// 
// Path: src/com/equadon/intellij/mips/stubs/types/MipsFileElementType.java
// public class MipsFileElementType extends IStubFileElementType<MipsFileStub> {
//   public static final IStubFileElementType INSTANCE = new MipsFileElementType();
//   private MipsFileElementType() {
//     super("MIPS_FILE", MipsLanguage.INSTANCE);
//   }
// }
// 
// Path: src/com/equadon/intellij/mips/lang/psi/MipsTokenTypes.java
// public static final TokenSet COMMENTS = TokenSet.create(COMMENT);
// 
// Path: src/com/equadon/intellij/mips/lang/psi/MipsTokenTypes.java
// public static final TokenSet STRINGS = TokenSet.create(LQUOTE, QUOTED_STRING, RQUOTE);
// 
// Path: src/com/equadon/intellij/mips/lang/psi/MipsTokenTypes.java
// public static final TokenSet WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE, TAB);


import org.jetbrains.annotations.NotNull;
import static com.equadon.intellij.mips.lang.psi.MipsTokenTypes.COMMENTS;
import static com.equadon.intellij.mips.lang.psi.MipsTokenTypes.STRINGS;
import static com.equadon.intellij.mips.lang.psi.MipsTokenTypes.WHITE_SPACES;
import com.equadon.intellij.mips.lang.lexer.MipsLexerAdapter;
import com.equadon.intellij.mips.lang.psi.MipsElementTypes;
import com.equadon.intellij.mips.lang.psi.impl.MipsFileImpl;
import com.equadon.intellij.mips.stubs.types.MipsFileElementType;
import com.intellij.lang.ASTNode;
import com.intellij.lang.ParserDefinition;
import com.intellij.lang.PsiParser;
import com.intellij.lexer.Lexer;
import com.intellij.openapi.project.Project;
import com.intellij.psi.FileViewProvider;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.tree.IFileElementType;
import com.intellij.psi.tree.TokenSet;
/*
 * Copyright 2017 Niklas Persson
 *
 * 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 com.equadon.intellij.mips.lang.parser;




public class MipsParserDefinition implements ParserDefinition {
  @NotNull
  @Override
  public Lexer createLexer(Project project) {
// Path: src/com/equadon/intellij/mips/lang/lexer/MipsLexerAdapter.java
// public class MipsLexerAdapter extends LookAheadLexer {
//   public MipsLexerAdapter() {
//     super(new MergingLexerAdapter(new FlexAdapter(new __MipsLexer()), MipsTokenTypes.COMMENTS));
//   }
// }
// 
// Path: src/com/equadon/intellij/mips/lang/psi/impl/MipsFileImpl.java
// public class MipsFileImpl extends PsiFileBase implements MipsFile {
//   public MipsFileImpl(@NotNull FileViewProvider viewProvider) {
//     super(viewProvider, MipsLanguage.INSTANCE);
//   }
// 
//   @NotNull
//   @Override
//   public FileType getFileType() {
//     return getViewProvider().getFileType();
//   }
// 
//   @Override
//   public Collection<MipsLabelDefinition> getLabelDefinitions() {
//     return PsiTreeUtil.findChildrenOfType(this, MipsLabelDefinition.class);
//   }
// }
// 
// Path: src/com/equadon/intellij/mips/stubs/types/MipsFileElementType.java
// public class MipsFileElementType extends IStubFileElementType<MipsFileStub> {
//   public static final IStubFileElementType INSTANCE = new MipsFileElementType();
//   private MipsFileElementType() {
//     super("MIPS_FILE", MipsLanguage.INSTANCE);
//   }
// }
// 
// Path: src/com/equadon/intellij/mips/lang/psi/MipsTokenTypes.java
// public static final TokenSet COMMENTS = TokenSet.create(COMMENT);
// 
// Path: src/com/equadon/intellij/mips/lang/psi/MipsTokenTypes.java
// public static final TokenSet STRINGS = TokenSet.create(LQUOTE, QUOTED_STRING, RQUOTE);
// 
// Path: src/com/equadon/intellij/mips/lang/psi/MipsTokenTypes.java
// public static final TokenSet WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE, TAB);


// Path: src/com/equadon/intellij/mips/lang/parser/MipsParserDefinition.java
import org.jetbrains.annotations.NotNull;
import static com.equadon.intellij.mips.lang.psi.MipsTokenTypes.COMMENTS;
import static com.equadon.intellij.mips.lang.psi.MipsTokenTypes.STRINGS;
import static com.equadon.intellij.mips.lang.psi.MipsTokenTypes.WHITE_SPACES;
import com.equadon.intellij.mips.lang.lexer.MipsLexerAdapter;
import com.equadon.intellij.mips.lang.psi.MipsElementTypes;
import com.equadon.intellij.mips.lang.psi.impl.MipsFileImpl;
import com.equadon.intellij.mips.stubs.types.MipsFileElementType;
import com.intellij.lang.ASTNode;
import com.intellij.lang.ParserDefinition;
import com.intellij.lang.PsiParser;
import com.intellij.lexer.Lexer;
import com.intellij.openapi.project.Project;
import com.intellij.psi.FileViewProvider;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.tree.IFileElementType;
import com.intellij.psi.tree.TokenSet;

/*
 * Copyright 2017 Niklas Persson
 *
 * 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 com.equadon.intellij.mips.lang.parser;




public class MipsParserDefinition implements ParserDefinition {
  @NotNull
  @Override
  public Lexer createLexer(Project project) {
    return new MipsLexerAdapter();