SmaCC__SmaCCStartingSymbol.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 07 Dec 2016 13:18:16 +0000
changeset 26 b2c091b8cea1
parent 25 5a6921729520
permissions -rw-r--r--
Fixed initialization of SmaCCEdge There's no `UnicodeString` anymore. Changed: WriteStream on: UnicodeString new to: String new writeStream
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     1
"{ Package: 'stx:goodies/smaCC' }"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     2
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     3
"{ NameSpace: SmaCC }"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     4
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     5
SmaCCNonTerminalSymbol subclass:#SmaCCStartingSymbol
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     6
	instanceVariableNames:''
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     7
	classVariableNames:''
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     8
	poolDictionaries:''
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     9
	category:'SmaCC-Parser Generator'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    10
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    11
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    12
SmaCCStartingSymbol comment:'SmaCCStartingSymbol is the starting symbol in the grammar. A grammar can only have one starting symbol, but it can have may different starting item sets.'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    13
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    14
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    15
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    16
!SmaCCStartingSymbol methodsFor:'accessing'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    17
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    18
asLRItemSet
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    19
	| itemSet |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    20
	itemSet := SmaCCItemSet new.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    21
	productions do: 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    22
			[:each | 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    23
			itemSet add: (SmaCCLR1Item 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    24
						symbol: self
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    25
						rhs: each
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    26
						follow: ((SmaCCSymbolSet new)
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    27
								add: self class empty;
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    28
								yourself))].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    29
	^itemSet
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    30
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    31
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    32
compileName
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    33
	^(productions first at: 1) name
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    34
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    35
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    36
!SmaCCStartingSymbol methodsFor:'public'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    37
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    38
isStartingSymbol
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    39
	^true
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    40
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    41
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    42
!SmaCCStartingSymbol class methodsFor:'documentation'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    43
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    44
version
25
5a6921729520 UI improvements: added menu items to show FIRST() and LAST() sets for non-terminal symbols.
vranyj1
parents: 15
diff changeset
    45
    ^ '$Id$'
15
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
    46
!
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
    47
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
    48
version_SVN
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
    49
    ^ '$Id$'
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    50
! !
25
5a6921729520 UI improvements: added menu items to show FIRST() and LAST() sets for non-terminal symbols.
vranyj1
parents: 15
diff changeset
    51