compiler/Dart__ParserTests.st
changeset 6 06efdfe62106
parent 3 46c322c66a29
equal deleted inserted replaced
5:77d56b3a771b 6:06efdfe62106
    26 
    26 
    27     "Created: / 14-03-2012 / 22:51:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    27     "Created: / 14-03-2012 / 22:51:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    28     "Modified: / 11-01-2013 / 13:28:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    28     "Modified: / 11-01-2013 / 13:28:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    29 !
    29 !
    30 
    30 
    31 parse: aString rule: aSymbol 
    31 parse: aString rule: aSymbol
       
    32         | production |
       
    33         production := self parserInstance.
       
    34         aSymbol = #start ifFalse: [ 
       
    35                 production := production productionAt: aSymbol.
       
    36                 production := production , (Dart::Parser::TokenParser for: #EOF).
       
    37         ].
    32 
    38 
    33     ^super parse: (Dart::Scanner for: aString) rule: aSymbol
    39         result := production parse: (Dart::Scanner for: aString).
       
    40         self 
       
    41             assert: result isPetitFailure not
       
    42             description: 'Unable to parse ' , aString printString.
       
    43 
       
    44         ^ result
    34 
    45 
    35     "Created: / 14-03-2012 / 22:51:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    46     "Created: / 14-03-2012 / 22:51:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    36     "Modified: / 11-01-2013 / 13:29:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    47     "Modified: / 11-01-2013 / 15:35:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    48 ! !
       
    49 
       
    50 !ParserTests methodsFor:'tests - expressions'!
       
    51 
       
    52 test_expression_01
       
    53 
       
    54     self parse:'1 + 1' rule: #expression
       
    55 
       
    56     "Created: / 11-01-2013 / 15:12:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    57 !
       
    58 
       
    59 test_expression_02
       
    60 
       
    61     self parse:'a.foo()' rule: #expression
       
    62 
       
    63     "Created: / 11-01-2013 / 15:19:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    64 !
       
    65 
       
    66 test_expression_04
       
    67 
       
    68     self parse:'new Foo()' rule: #expression
       
    69 
       
    70     "Created: / 11-01-2013 / 15:38:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    71 ! !
       
    72 
       
    73 !ParserTests methodsFor:'tests - literals'!
       
    74 
       
    75 test_literal_01
       
    76 
       
    77     self parse: '1' rule: #literal.
       
    78     self parse: '1.0' rule: #literal.
       
    79     self parse: 'true' rule: #literal.
       
    80     self parse: 'false' rule: #literal.
       
    81     self parse: 'null' rule: #literal.
       
    82 
       
    83     "Created: / 11-01-2013 / 15:13:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    84 ! !
       
    85 
       
    86 !ParserTests methodsFor:'tests - misc'!
       
    87 
       
    88 test_misc_01
       
    89 
       
    90     self parse:'=' rule: #assignmentOperator
       
    91 
       
    92     "Created: / 11-01-2013 / 15:49:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    37 ! !
    93 ! !
    38 
    94 
    39 !ParserTests methodsFor:'tests - smoke'!
    95 !ParserTests methodsFor:'tests - smoke'!
    40 
    96 
    41 test_smoke_01
    97 test_smoke_01
    53 
   109 
    54     "Created: / 11-01-2013 / 13:37:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   110     "Created: / 11-01-2013 / 13:37:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    55 !
   111 !
    56 
   112 
    57 test_smoke_02
   113 test_smoke_02
    58     self parse: 'import ''dart:html'';
   114     self parse: '
    59 
   115 
    60 void main() {
   116 void main() {
    61     var a = 1 + 1;
   117     var a = 1 + 1;
    62 
   118 
    63 }'
   119 }'
    64 
   120 
    65     "Created: / 11-01-2013 / 13:30:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   121     "Created: / 11-01-2013 / 13:30:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   122     "Modified: / 11-01-2013 / 15:07:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    66 !
   123 !
    67 
   124 
    68 test_smoke_03
   125 test_smoke_03
    69     self parse: '
   126     self parse: '
    70 
   127 
    81 }'
   138 }'
    82 
   139 
    83     "Created: / 11-01-2013 / 13:34:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   140     "Created: / 11-01-2013 / 13:34:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    84 ! !
   141 ! !
    85 
   142 
       
   143 !ParserTests methodsFor:'tests - statements'!
       
   144 
       
   145 test_statement_01
       
   146 
       
   147     self parse:'a = 1;' rule: #statement
       
   148 
       
   149     "Created: / 11-01-2013 / 15:40:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   150 !
       
   151 
       
   152 test_statement_02
       
   153 
       
   154     self parse:'return 1;' rule: #statement
       
   155 
       
   156     "Created: / 11-01-2013 / 15:44:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   157 ! !
       
   158 
    86 !ParserTests class methodsFor:'documentation'!
   159 !ParserTests class methodsFor:'documentation'!
    87 
   160 
    88 version_HG
   161 version_HG
    89 
   162 
    90     ^ '$Changeset: <not expanded> $'
   163     ^ '$Changeset: <not expanded> $'