Annotation of loncom/html/adm/LC_math_editor/src/operator.js, revision 1.1
1.1 ! damieng 1: /*
! 2:
! 3: Copyright (C) 2014 Michigan State University Board of Trustees
! 4:
! 5: The JavaScript code in this page is free software: you can
! 6: redistribute it and/or modify it under the terms of the GNU
! 7: General Public License (GNU GPL) as published by the Free Software
! 8: Foundation, either version 3 of the License, or (at your option)
! 9: any later version. The code is distributed WITHOUT ANY WARRANTY;
! 10: without even the implied warranty of MERCHANTABILITY or FITNESS
! 11: FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
! 12:
! 13: As additional permission under GNU GPL version 3 section 7, you
! 14: may distribute non-source (e.g., minimized or compacted) forms of
! 15: that code without the copy of the GNU GPL normally required by
! 16: section 4, provided you include this license notice and a URL
! 17: through which recipients can access the Corresponding Source.
! 18:
! 19: */
! 20:
! 21: /**
! 22: * Null denotation function
! 23: * @callback nudFunction
! 24: * @param {Parser} p - the parser
! 25: * @returns {ENode}
! 26: */
! 27:
! 28: /**
! 29: * Left denotation function
! 30: * @callback ledFunction
! 31: * @param {Parser} p - the parser
! 32: * @param {ENode} left - left node
! 33: * @returns {ENode}
! 34: */
! 35:
! 36: /**
! 37: * Parser operator, like "(".
! 38: * @constructor
! 39: * @param {string} id - Characters used to recognize the operator
! 40: * @param {number} arity (UNKNOWN, UNARY, BINARY, TERNARY)
! 41: * @param {number} lbp - left binding power
! 42: * @param {number} rbp - right binding power
! 43: * @param {nudFunction} nud - Null denotation function
! 44: * @param {ledFunction} led - Left denotation function
! 45: */
! 46: function Operator(id, arity, lbp, rbp, nud, led) {
! 47: this.id = id;
! 48: this.arity = arity;
! 49: this.lbp = lbp;
! 50: this.rbp = rbp;
! 51: this.nud = nud;
! 52: this.led = led;
! 53: }
! 54:
! 55: Operator.UNKNOWN = 0;
! 56: Operator.UNARY = 1;
! 57: Operator.BINARY = 2;
! 58: Operator.TERNARY = 3;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>