islands/JavaParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 08 Oct 2014 00:33:44 +0100
changeset 387 e2b2ccaa4de6
child 454 a9cd5ea7cc36
permissions -rw-r--r--
Commited a island parser support (MC package PetitIslands) Name: PetitIslands-JanKurs.10 Author: JanKurs Time: 06-10-2014, 11:50:57 AM UUID: 19560ad2-4899-43d5-8c69-cf7274ad4f04 Repository: http://smalltalkhub.com/mc/Moose/PetitParser/main
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
387
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/islands' }"
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
PPCompositeParser subclass:#JavaParser
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:'javaClass classDef classBody methodDef arguments methodBody
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
		methodName block modifiers classId type throws javaClassIsland
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
		methodModifiers semicolon comment singleLineComment string water'
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'PetitIslands-Examples'
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
JavaParser comment:'A JavaParser is a island parser, that can extract method names from a java file.

Instance Variables
	arguments:		<Object>
	block:		<Object>
	classBody:		<Object>
	classDef:		<Object>
	classId:		<Object>
	javaClass:		<Object>
	javaClassIsland:		<Object>
	methodBody:		<Object>
	methodDef:		<Object>
	methodModifiers:		<Object>
	methodName:		<Object>
	modifiers:		<Object>
	semicolon:		<Object>
	throws:		<Object>
	type:		<Object>

arguments
	- xxxxx

block
	- xxxxx

classBody
	- xxxxx

classDef
	- xxxxx

classId
	- xxxxx

javaClass
	- xxxxx

javaClassIsland
	- xxxxx

methodBody
	- xxxxx

methodDef
	- xxxxx

methodModifiers
	- xxxxx

methodName
	- xxxxx

modifiers
	- xxxxx

semicolon
	- xxxxx

throws
	- xxxxx

type
	- xxxxx
'
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
!JavaParser methodsFor:'as yet unclassified'!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
start
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	^ javaClassIsland
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
! !
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!JavaParser methodsFor:'class'!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
block
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	^ (${ asParser,
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
		((block island: water) plus / nil asParser island),
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	$} asParser) ==> [:tokens | nil ]
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
		
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
classBody
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
	 ^ 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
	(${ asParser,
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
		(
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
		((methodDef island: water) ==> [:tokens | tokens second]) plus /
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
		((nil asParser island: water) ==> [ :tokens | OrderedCollection new ])
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
		),
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
	$} asParser) ==> [:tokens | tokens second select: [:e | e isNil not ]]
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
classDef
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
	^ modifiers trim, 'class' asParser, classId trim ==> [:tokens | tokens third ]
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
classId
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
	^ (#uppercase asParser, (#letter asParser / #digit asParser) star) flatten 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
javaClass
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
	^ classDef, ((classBody island:water) ==> [:tokens | tokens second ])
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
javaClassIsland
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
	^ (javaClass island: water) ==> [:tokens | tokens second]
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
methodModifiers
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
	^( ('public' asParser / 'private' asParser / 'protected' asParser) optional, 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
	  'static' asParser trim optional, 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
	  'final' asParser trim optional,
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
	  'abstract' asParser trim optional,
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
	  'synchronized' asParser trim optional,	
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
	  'native' asParser trim optional) ==> [ :tokens | nil ]
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
modifiers
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
	^ ('public' asParser / 'private' asParser), 'final' asParser trim optional, 'abstract' asParser trim optional
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
! !
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
!JavaParser methodsFor:'comments and strings'!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
comment
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
	| end |
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
	end := '*/' asParser.
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
	^ ('/*' asParser, (#any asParser starLazy: end), end)
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
singleLineComment
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
	| end |
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
	end := #newline asParser.
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
	^ ('//' asParser, (#any asParser starLazy: end), end)
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
string
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
	| end |
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
	end := $" asParser.
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
	^ ($" asParser, (#any asParser starLazy: end), end)
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
		name: 'string';
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
		yourself.
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
! !
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
!JavaParser methodsFor:'context'!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
updateContext: aPPContext
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
	super updateContext: aPPContext.
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
"	aPPContext globalAt: #waterObjects put: (OrderedCollection 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
			with: self comment 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
			with: self singleLineComment
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
			with: self string
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
			with: self block)."
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
! !
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
!JavaParser methodsFor:'method'!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
arguments
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
	^ $( asParser, nil asParser island,  $) asParser trim
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
methodBody 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
	^ semicolon / block
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
methodDef
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
	^ methodModifiers, (type island: water), (methodName island:water), (arguments island:water), methodBody ==> [:tokens | tokens third second ]
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
methodName
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
	^ (#letter asParser, (#letter asParser / #digit asParser) star) flatten 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
semicolon
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
	^ ';' asParser
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
throws
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
	^ 'throws' asParser trim, type trim, ($, asParser, type trim) star
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
type
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
	^ (#letter asParser, (#letter asParser / #digit asParser) star) flatten 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
!
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
water
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
	"
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
		This will allow to skip over
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
			- Strings, 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
			- Comments 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
			- and blocks 
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
		when parsing water. This way, comments and strings cannot confuse the result.
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
	"
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
	^ comment / string / singleLineComment / block / #any asParser
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
! !
e2b2ccaa4de6 Commited a island parser support (MC package PetitIslands)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143