summaryrefslogtreecommitdiff
path: root/doc/_extensions/pyjsparser/pyjsparserdata.py
diff options
context:
space:
mode:
authorVictor Feyens <vfe@odoo.com>2021-04-30 13:24:57 +0000
committerAntoine Vandevenne (anv) <anv@odoo.com>2021-05-04 08:09:20 +0000
commit27bad8c3e32049ec69a588df0558e57a0b928309 (patch)
treeb60e430163d486c8c1fd052738c9854aeb8300f5 /doc/_extensions/pyjsparser/pyjsparserdata.py
parent75a122bbae3a32bfa79da3506179fc63a8bced5d (diff)
[MOV] doc: move documentation to a dedicated repository
In odoo/documentation-user#945, the developer documentation is merged with the user documentation in a single repository and build config. This commit then removes source files for the developer documentation from the odoo/odoo repository. DOC PR: https://github.com/odoo/documentation-user/pull/945 task-2351938 task-2352371 task-2205684 task-2352544 Co-authored-by: Victor Feyens <vfe@odoo.com> Co-authored-by: Antoine Vandevenne <anv@odoo.com>
Diffstat (limited to 'doc/_extensions/pyjsparser/pyjsparserdata.py')
-rw-r--r--doc/_extensions/pyjsparser/pyjsparserdata.py297
1 files changed, 0 insertions, 297 deletions
diff --git a/doc/_extensions/pyjsparser/pyjsparserdata.py b/doc/_extensions/pyjsparser/pyjsparserdata.py
deleted file mode 100644
index 5db295a34b5..00000000000
--- a/doc/_extensions/pyjsparser/pyjsparserdata.py
+++ /dev/null
@@ -1,297 +0,0 @@
-# The MIT License
-#
-# Copyright 2014, 2015 Piotr Dabkowski
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the 'Software'),
-# to deal in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-# the Software, and to permit persons to whom the Software is furnished to do so, subject
-# to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all copies or
-# substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-# LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
-from __future__ import unicode_literals
-
-import sys
-import unicodedata
-from collections import defaultdict
-
-
-token = {
- 'BooleanLiteral': 1,
- 'EOF': 2,
- 'Identifier': 3,
- 'Keyword': 4,
- 'NullLiteral': 5,
- 'NumericLiteral': 6,
- 'Punctuator': 7,
- 'StringLiteral': 8,
- 'RegularExpression': 9,
- 'Template': 10
- }
-
-
-TokenName = dict((v,k) for k,v in token.items())
-
-FnExprTokens = ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',
- 'return', 'case', 'delete', 'throw', 'void',
- # assignment operators
- '=', '+=', '-=', '*=', '/=', '%=', '<<=', '>>=', '>>>=',
- '&=', '|=', '^=', ',',
- # binary/unary operators
- '+', '-', '*', '/', '%', '++', '--', '<<', '>>', '>>>', '&',
- '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',
- '<=', '<', '>', '!=', '!==']
-
-syntax= set(('AssignmentExpression',
- 'AssignmentPattern',
- 'ArrayExpression',
- 'ArrayPattern',
- 'ArrowFunctionExpression',
- 'BlockStatement',
- 'BinaryExpression',
- 'BreakStatement',
- 'CallExpression',
- 'CatchClause',
- 'ClassBody',
- 'ClassDeclaration',
- 'ClassExpression',
- 'ConditionalExpression',
- 'ContinueStatement',
- 'DoWhileStatement',
- 'DebuggerStatement',
- 'EmptyStatement',
- 'ExportAllDeclaration',
- 'ExportDefaultDeclaration',
- 'ExportNamedDeclaration',
- 'ExportSpecifier',
- 'ExpressionStatement',
- 'ForStatement',
- 'ForInStatement',
- 'FunctionDeclaration',
- 'FunctionExpression',
- 'Identifier',
- 'IfStatement',
- 'ImportDeclaration',
- 'ImportDefaultSpecifier',
- 'ImportNamespaceSpecifier',
- 'ImportSpecifier',
- 'Literal',
- 'LabeledStatement',
- 'LogicalExpression',
- 'MemberExpression',
- 'MethodDefinition',
- 'NewExpression',
- 'ObjectExpression',
- 'ObjectPattern',
- 'Program',
- 'Property',
- 'RestElement',
- 'ReturnStatement',
- 'SequenceExpression',
- 'SpreadElement',
- 'Super',
- 'SwitchCase',
- 'SwitchStatement',
- 'TaggedTemplateExpression',
- 'TemplateElement',
- 'TemplateLiteral',
- 'ThisExpression',
- 'ThrowStatement',
- 'TryStatement',
- 'UnaryExpression',
- 'UpdateExpression',
- 'VariableDeclaration',
- 'VariableDeclarator',
- 'WhileStatement',
- 'WithStatement'))
-
-
-# Error messages should be identical to V8.
-messages = {
- 'UnexpectedToken': 'Unexpected token %s',
- 'UnexpectedNumber': 'Unexpected number',
- 'UnexpectedString': 'Unexpected string',
- 'UnexpectedIdentifier': 'Unexpected identifier',
- 'UnexpectedReserved': 'Unexpected reserved word',
- 'UnexpectedTemplate': 'Unexpected quasi %s',
- 'UnexpectedEOS': 'Unexpected end of input',
- 'NewlineAfterThrow': 'Illegal newline after throw',
- 'InvalidRegExp': 'Invalid regular expression',
- 'UnterminatedRegExp': 'Invalid regular expression: missing /',
- 'InvalidLHSInAssignment': 'Invalid left-hand side in assignment',
- 'InvalidLHSInForIn': 'Invalid left-hand side in for-in',
- 'MultipleDefaultsInSwitch': 'More than one default clause in switch statement',
- 'NoCatchOrFinally': 'Missing catch or finally after try',
- 'UnknownLabel': 'Undefined label \'%s\'',
- 'Redeclaration': '%s \'%s\' has already been declared',
- 'IllegalContinue': 'Illegal continue statement',
- 'IllegalBreak': 'Illegal break statement',
- 'IllegalReturn': 'Illegal return statement',
- 'StrictModeWith': 'Strict mode code may not include a with statement',
- 'StrictCatchVariable': 'Catch variable may not be eval or arguments in strict mode',
- 'StrictVarName': 'Variable name may not be eval or arguments in strict mode',
- 'StrictParamName': 'Parameter name eval or arguments is not allowed in strict mode',
- 'StrictParamDupe': 'Strict mode function may not have duplicate parameter names',
- 'StrictFunctionName': 'Function name may not be eval or arguments in strict mode',
- 'StrictOctalLiteral': 'Octal literals are not allowed in strict mode.',
- 'StrictDelete': 'Delete of an unqualified identifier in strict mode.',
- 'StrictLHSAssignment': 'Assignment to eval or arguments is not allowed in strict mode',
- 'StrictLHSPostfix': 'Postfix increment/decrement may not have eval or arguments operand in strict mode',
- 'StrictLHSPrefix': 'Prefix increment/decrement may not have eval or arguments operand in strict mode',
- 'StrictReservedWord': 'Use of future reserved word in strict mode',
- 'TemplateOctalLiteral': 'Octal literals are not allowed in template strings.',
- 'ParameterAfterRestParameter': 'Rest parameter must be last formal parameter',
- 'DefaultRestParameter': 'Unexpected token =',
- 'ObjectPatternAsRestParameter': 'Unexpected token {',
- 'DuplicateProtoProperty': 'Duplicate __proto__ fields are not allowed in object literals',
- 'ConstructorSpecialMethod': 'Class constructor may not be an accessor',
- 'DuplicateConstructor': 'A class may only have one constructor',
- 'StaticPrototype': 'Classes may not have static property named prototype',
- 'MissingFromClause': 'Unexpected token',
- 'NoAsAfterImportNamespace': 'Unexpected token',
- 'InvalidModuleSpecifier': 'Unexpected token',
- 'IllegalImportDeclaration': 'Unexpected token',
- 'IllegalExportDeclaration': 'Unexpected token'}
-
-PRECEDENCE = {'||':1,
- '&&':2,
- '|':3,
- '^':4,
- '&':5,
- '==':6,
- '!=':6,
- '===':6,
- '!==':6,
- '<':7,
- '>':7,
- '<=':7,
- '>=':7,
- 'instanceof':7,
- 'in':7,
- '<<':8,
- '>>':8,
- '>>>':8,
- '+':9,
- '-':9,
- '*':11,
- '/':11,
- '%':11}
-
-class Token: pass
-class Syntax: pass
-class Messages: pass
-class PlaceHolders:
- ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder'
-
-for k,v in token.items():
- setattr(Token, k, v)
-
-for e in syntax:
- setattr(Syntax, e, e)
-
-for k,v in messages.items():
- setattr(Messages, k, v)
-
-#http://stackoverflow.com/questions/14245893/efficiently-list-all-characters-in-a-given-unicode-category
-BOM = u'\uFEFF'
-ZWJ = u'\u200D'
-ZWNJ = u'\u200C'
-TAB = u'\u0009'
-VT = u'\u000B'
-FF = u'\u000C'
-SP = u'\u0020'
-NBSP = u'\u00A0'
-LF = u'\u000A'
-CR = u'\u000D'
-LS = u'\u2028'
-PS = u'\u2029'
-
-U_CATEGORIES = defaultdict(list)
-for c in map(chr, range(sys.maxunicode + 1)):
- U_CATEGORIES[unicodedata.category(c)].append(c)
-UNICODE_LETTER = set(U_CATEGORIES['Lu']+U_CATEGORIES['Ll']+
- U_CATEGORIES['Lt']+U_CATEGORIES['Lm']+
- U_CATEGORIES['Lo']+U_CATEGORIES['Nl'])
-UNICODE_COMBINING_MARK = set(U_CATEGORIES['Mn']+U_CATEGORIES['Mc'])
-UNICODE_DIGIT = set(U_CATEGORIES['Nd'])
-UNICODE_CONNECTOR_PUNCTUATION = set(U_CATEGORIES['Pc'])
-IDENTIFIER_START = UNICODE_LETTER.union(set(('$','_', '\\'))) # and some fucking unicode escape sequence
-IDENTIFIER_PART = IDENTIFIER_START.union(UNICODE_COMBINING_MARK).union(UNICODE_DIGIT)\
- .union(UNICODE_CONNECTOR_PUNCTUATION).union(set((ZWJ, ZWNJ)))
-
-WHITE_SPACE = set((0x20, 0x09, 0x0B, 0x0C, 0xA0, 0x1680,
- 0x180E, 0x2000, 0x2001, 0x2002, 0x2003,
- 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
- 0x2009, 0x200A, 0x202F, 0x205F, 0x3000,
- 0xFEFF))
-
-LINE_TERMINATORS = set((0x0A, 0x0D, 0x2028, 0x2029))
-
-def isIdentifierStart(ch):
- return (ch if isinstance(ch, str) else chr(ch)) in IDENTIFIER_START
-
-def isIdentifierPart(ch):
- return (ch if isinstance(ch, str) else chr(ch)) in IDENTIFIER_PART
-
-def isWhiteSpace(ch):
- return (ord(ch) if isinstance(ch, str) else ch) in WHITE_SPACE
-
-def isLineTerminator(ch):
- return (ord(ch) if isinstance(ch, str) else ch) in LINE_TERMINATORS
-
-OCTAL = set(('0', '1', '2', '3', '4', '5', '6', '7'))
-DEC = set(('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'))
-HEX = set('0123456789abcdefABCDEF')
-HEX_CONV = dict(('0123456789abcdef'[n],n) for n in range(16))
-for i,e in enumerate('ABCDEF', 10):
- HEX_CONV[e] = i
-
-
-def isDecimalDigit(ch):
- return (ch if isinstance(ch, str) else chr(ch)) in DEC
-
-def isHexDigit(ch):
- return (ch if isinstance(ch, str) else chr(ch)) in HEX
-
-def isOctalDigit(ch):
- return (ch if isinstance(ch, str) else chr(ch)) in OCTAL
-
-def isFutureReservedWord(w):
- return w in ('enum', 'export', 'import', 'super')
-
-
-RESERVED_WORD = set(('implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', 'let'))
-def isStrictModeReservedWord(w):
- return w in RESERVED_WORD
-
-def isRestrictedWord(w):
- return w in ('eval', 'arguments')
-
-
-KEYWORDS = set(('if', 'in', 'do', 'var', 'for', 'new', 'try', 'let', 'this', 'else', 'case',
- 'void', 'with', 'enum', 'while', 'break', 'catch', 'throw', 'const', 'yield',
- 'class', 'super', 'return', 'typeof', 'delete', 'switch', 'export', 'import',
- 'default', 'finally', 'extends', 'function', 'continue', 'debugger', 'instanceof', 'pyimport'))
-def isKeyword(w):
- # 'const' is specialized as Keyword in V8.
- # 'yield' and 'let' are for compatibility with SpiderMonkey and ES.next.
- # Some others are from future reserved words.
- return w in KEYWORDS
-
-
-class JsSyntaxError(Exception): pass
-
-if __name__=='__main__':
- assert isLineTerminator('\n')
- assert isLineTerminator(0x0A)
- assert isIdentifierStart('$')
- assert isIdentifierStart(100)
- assert isWhiteSpace(' ')