packages/gerber-parser/lib/_parse-macro-expression.js
function() {
    var exp = parsePrimary()
    var t = tokens[0]

    if (t === 'X') {
      parser._warn("multiplication in macros should use 'x', not 'X'")
      t = 'x'
    }
    while (t === 'x' || t === '/') {
      tokens.shift()
      var right = parsePrimary()
      exp = {type: t, left: exp, right: right}
      t = tokens[0]
    }
    return exp
  }
function() {
    var exp = parsePrimary()
    var t = tokens[0]

    if (t === 'X') {
      parser._warn("multiplication in macros should use 'x', not 'X'")
      t = 'x'
    }
    while (t === 'x' || t === '/') {
      tokens.shift()
      var right = parsePrimary()
      exp = {type: t, left: exp, right: right}
      t = tokens[0]
    }
    return exp
  }
function ( ) { var exp = parsePrimary ( ) var t = tokens [ 0 ] if ( t === 'X' ) { parser . _warn ( "multiplication in macros should use 'x', not 'X'" ) t = 'x' } while ( t === 'x' || t === '/' ) { tokens . shift ( ) var right = parsePrimary ( ) exp = { type : t , left : exp , right : right } t = tokens [ 0 ] } return exp }
parse multiplication and division tokens
parse multiplication and division tokens