32 lines
		
	
	
		
			624 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			624 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
 | 
						|
 | 
						|
import {augmentError, initParser, state} from "./traverser/base";
 | 
						|
import {parseFile} from "./traverser/index";
 | 
						|
 | 
						|
export class File {
 | 
						|
  
 | 
						|
  
 | 
						|
 | 
						|
  constructor(tokens, scopes) {
 | 
						|
    this.tokens = tokens;
 | 
						|
    this.scopes = scopes;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
export function parse(
 | 
						|
  input,
 | 
						|
  isJSXEnabled,
 | 
						|
  isTypeScriptEnabled,
 | 
						|
  isFlowEnabled,
 | 
						|
) {
 | 
						|
  if (isFlowEnabled && isTypeScriptEnabled) {
 | 
						|
    throw new Error("Cannot combine flow and typescript plugins.");
 | 
						|
  }
 | 
						|
  initParser(input, isJSXEnabled, isTypeScriptEnabled, isFlowEnabled);
 | 
						|
  const result = parseFile();
 | 
						|
  if (state.error) {
 | 
						|
    throw augmentError(state.error);
 | 
						|
  }
 | 
						|
  return result;
 | 
						|
}
 |