Blame view

node_modules/acorn/src/location.js 787 Bytes
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  import {Parser} from "./state"
  import {Position, getLineInfo} from "./locutil"
  
  const pp = Parser.prototype
  
  // This function is used to raise exceptions on parse errors. It
  // takes an offset integer (into the current `input`) to indicate
  // the location of the error, attaches the position to the end
  // of the error message, and then raises a `SyntaxError` with that
  // message.
  
  pp.raise = function(pos, message) {
    let loc = getLineInfo(this.input, pos)
    message += " (" + loc.line + ":" + loc.column + ")"
    let err = new SyntaxError(message)
    err.pos = pos; err.loc = loc; err.raisedAt = this.pos
    throw err
  }
  
  pp.raiseRecoverable = pp.raise
  
  pp.curPosition = function() {
    if (this.options.locations) {
      return new Position(this.curLine, this.pos - this.lineStart)
    }
  }