static/ext/src/ux/AceEditor/87749d9714f1925e26afa48a0d592eaa39403858@/lib/ace/mode/javascript_worker.js
function expression(rbp, initial) {
        var left;
        if (nexttoken.id === '(end)') {
            error("Unexpected early end of program.", token);
        }
        advance();
        if (option.safe && typeof predefined[token.value] === 'boolean' &&
                (nexttoken.id !== '(' && nexttoken.id !== '.')) {
            warning('ADsafe violation.', token);
        }
        if (initial) {
            anonname = 'anonymous';
            funct['(verb)'] = token.value;
        }
        if (initial === true && token.fud) {
            left = token.fud();
        } else {
            if (token.nud) {
                left = token.nud();
            } else {
                if (nexttoken.type === '(number)' && token.id === '.') {
                    warning(
"A leading decimal point can be confused with a dot: '.{a}'.",
                            token, nexttoken.value);
                    advance();
                    return token;
                } else {
                    error("Expected an identifier and instead saw '{a}'.",
                            token, token.id);
                }
            }
            while (rbp < nexttoken.lbp) {
                advance();
                if (token.led) {
                    left = token.led(left);
                } else {
                    error("Expected an operator and instead saw '{a}'.",
                        token, token.id);
                }
            }
        }
        return left;
    }
function expression(rbp, initial) {
        var left;
        if (nexttoken.id === '(end)') {
            error("Unexpected early end of program.", token);
        }
        advance();
        if (option.safe && typeof predefined[token.value] === 'boolean' &&
                (nexttoken.id !== '(' && nexttoken.id !== '.')) {
            warning('ADsafe violation.', token);
        }
        if (initial) {
            anonname = 'anonymous';
            funct['(verb)'] = token.value;
        }
        if (initial === true && token.fud) {
            left = token.fud();
        } else {
            if (token.nud) {
                left = token.nud();
            } else {
                if (nexttoken.type === '(number)' && token.id === '.') {
                    warning(
"A leading decimal point can be confused with a dot: '.{a}'.",
                            token, nexttoken.value);
                    advance();
                    return token;
                } else {
                    error("Expected an identifier and instead saw '{a}'.",
                            token, token.id);
                }
            }
            while (rbp < nexttoken.lbp) {
                advance();
                if (token.led) {
                    left = token.led(left);
                } else {
                    error("Expected an operator and instead saw '{a}'.",
                        token, token.id);
                }
            }
        }
        return left;
    }
function expression ( rbp , initial ) { var left ; if ( nexttoken . id === '(end)' ) { error ( "Unexpected early end of program." , token ) ; } advance ( ) ; if ( option . safe && typeof predefined [ token . value ] === 'boolean' && ( nexttoken . id !== '(' && nexttoken . id !== '.' ) ) { warning ( 'ADsafe violation.' , token ) ; } if ( initial ) { anonname = 'anonymous' ; funct [ '(verb)' ] = token . value ; } if ( initial === true && token . fud ) { left = token . fud ( ) ; } else { if ( token . nud ) { left = token . nud ( ) ; } else { if ( nexttoken . type === '(number)' && token . id === '.' ) { warning ( "A leading decimal point can be confused with a dot: '.{a}'." , token , nexttoken . value ) ; advance ( ) ; return token ; } else { error ( "Expected an identifier and instead saw '{a}'." , token , token . id ) ; } } while ( rbp < nexttoken . lbp ) { advance ( ) ; if ( token . led ) { left = token . led ( left ) ; } else { error ( "Expected an operator and instead saw '{a}'." , token , token . id ) ; } } } return left ; }
.nud     Null denotation .fud     First null denotation .led     Left denotation lbp     Left binding power rbp     Right binding power They are elements of the parsing method called Top Down Operator Precedence.
. nud Null denotation . fud First null denotation . led Left denotation lbp Left binding power rbp Right binding power They are elements of the parsing method called Top Down Operator Precedence .