function () {
                    var ch, name, index = parserInput.i;

                    parserInput.save();
                    if (parserInput.currentChar() === '@' && (name = parserInput.$re(/^@@?[\w-]+/))) {
                        ch = parserInput.currentChar();
                        if (ch === '(' || ch === '[' && !parserInput.prevChar().match(/^\s/)) {
                            // this may be a VariableCall lookup
                            var result = parsers.variableCall(name);
                            if (result) {
                                parserInput.forget();
                                return result;
                            }
                        }
                        parserInput.forget();
                        return new(tree.Variable)(name, index, fileInfo);
                    }
                    parserInput.restore();
                }
function () {
                    var ch, name, index = parserInput.i;

                    parserInput.save();
                    if (parserInput.currentChar() === '@' && (name = parserInput.$re(/^@@?[\w-]+/))) {
                        ch = parserInput.currentChar();
                        if (ch === '(' || ch === '[' && !parserInput.prevChar().match(/^\s/)) {
                            
                            var result = parsers.variableCall(name);
                            if (result) {
                                parserInput.forget();
                                return result;
                            }
                        }
                        parserInput.forget();
                        return new(tree.Variable)(name, index, fileInfo);
                    }
                    parserInput.restore();
                }
function ( ) { var ch , name , index = parserInput . i ; parserInput . save ( ) ; if ( parserInput . currentChar ( ) === '@' && ( name = parserInput . $re ( / ^@@?[\w-]+ / ) ) ) { ch = parserInput . currentChar ( ) ; if ( ch === '(' || ch === '[' && ! parserInput . prevChar ( ) . match ( / ^\s / ) ) { // this may be a VariableCall lookup var result = parsers . variableCall ( name ) ; if ( result ) { parserInput . forget ( ) ; return result ; } } parserInput . forget ( ) ; return new ( tree . Variable ) ( name , index , fileInfo ) ; } parserInput . restore ( ) ; }
A Variable entity, such as `@fink`, in  width: @fink + 2px  We use a different parser for variable definitions, see `parsers.variable`.
A Variable entity such as