language-javascript 0.4.3 → 0.4.4
raw patch · 5 files changed
+12/−4 lines, 5 files
Files
- README +2/−0
- dist/build/Language/JavaScript/Parser/Lexer.hs too large to diff
- language-javascript.cabal +2/−2
- runtests.hs +5/−0
- src/Language/JavaScript/Parser/Lexer.x +3/−2
README view
@@ -47,6 +47,8 @@ Changes +0.4.4 Allow unicode characters in comments+ 0.4.3 correct lexer for decimalToken, only leading digit needs to be non-zero. 0.4.2 Expose SrcSpan
dist/build/Language/JavaScript/Parser/Lexer.hs view
file too large to diff
language-javascript.cabal view
@@ -1,5 +1,5 @@ Name: language-javascript-Version: 0.4.3+Version: 0.4.4 Synopsis: Parser for JavaScript Description: Parses Javascript into an Abstract Syntax Tree (AST). Initially intended as frontend to hjsmin. Homepage: https://github.com/alanz/language-javascript@@ -7,7 +7,7 @@ License-file: LICENSE Author: Alan Zimmerman Maintainer: alan.zimm@gmail.com-Copyright: (c) 2010 Alan Zimmerman+Copyright: (c) 2010,2011 Alan Zimmerman Category: Language Build-type: Simple homepage: http://github.com/alanz/language-javascript
runtests.hs view
@@ -275,6 +275,11 @@ -- https://github.com/alanz/hjsmin/issues/#issue/3 , testCase "bug3" (testProg "var myLatlng = new google.maps.LatLng(56.8379100, 60.5806664);" "Right (JSSourceElementsTop [JSVariables \"var\" [JSVarDecl (JSIdentifier \"myLatlng\") [JSLiteral \"new \",JSMemberDot [JSMemberDot [JSIdentifier \"google\"] (JSIdentifier \"maps\")] (JSIdentifier \"LatLng\"),JSArguments [[JSDecimal \"56.8379100\"],[JSDecimal \"60.5806664\"]]]]])") + -- https://github.com/alanz/hjsmin/issues/#issue/4 + , testCase "bug4" (testProg "/* * geolocation. пытаемся определить свое местоположение * если не получается то используем defaultLocation * @Param {object} map экземпляр карты * @Param {object LatLng} defaultLocation Координаты центра по умолчанию * @Param {function} callbackAfterLocation Фу-ия которая вызывается после * геолокации. Т.к запрос геолокации асинхронен */x" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\"]])")+ + + , testCase "02_sm.js" (testProg "{zero}\none1;two\n{three\nfour;five;\n{\nsix;{seven;}\n}\n}" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"one1\"],JSLiteral \";\",JSExpression [JSIdentifier \"two\"],JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"three\"],JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"five\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"six\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"seven\"],JSLiteral \";\"])])])])") , testCase "02_sm.js.2" (testProg "{zero}\nget;two\n{three\nfour;set;\n{\nsix;{seven;}\n}\n}" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"get\"],JSLiteral \";\",JSExpression [JSIdentifier \"two\"],JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"three\"],JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"set\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"six\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"seven\"],JSLiteral \";\"])])])])")
src/Language/JavaScript/Parser/Lexer.x view
@@ -37,6 +37,7 @@ @eol_pattern = $lf | $cr $lf | $cr $lf $any_char = [\x00-\xff]+$any_unicode_char = [\x00-\xffff] $eol_char = [\x000A\x000D\x2028\x2029] -- any end of line character@@ -72,8 +73,8 @@ -- ~ ( LineTerminator | BSLASH | DIV ) $RegExpChars = [$printable] # [ $cr $lf \\ \/] -$MultiLineNotAsteriskChar = [$any_char] # [\*]-$MultiLineNotForwardSlashOrAsteriskChar = [$any_char] # [\* \/]+$MultiLineNotAsteriskChar = [$any_unicode_char] # [\*]+$MultiLineNotForwardSlashOrAsteriskChar = [$any_unicode_char] # [\* \/] -- See http://blog.stevenlevithan.com/archives/javascript-regex-and-unicode -- * \u0009 — Tab — \t