SmaCC__SmaCCAdvancedParser.st
author vranyj1
Wed, 17 Nov 2010 21:57:55 +0000
changeset 20 4ea23addc2c4
parent 15 8b8cd1701c33
permissions -rw-r--r--
Makefile updated
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
SmaCCParser subclass:#SmaCCAdvancedParser
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-Runtime-Advanced'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    10
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    11
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    12
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    13
!SmaCCAdvancedParser methodsFor:'accessing'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    14
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    15
lineNumber
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    16
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    17
    ^scanner lineNumber
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    18
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    19
    "Created: / 20-06-2006 / 08:31:54 / janfrog"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    20
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    21
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    22
!SmaCCAdvancedParser methodsFor:'error reporting'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    23
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    24
reportErrorMessage: aString
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    25
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    26
    | line lastCrPosition col stream token message|
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    27
    lastCrPosition := 0.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    28
    line := 1.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    29
    stream := scanner stream.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    30
    token := errorToken ? currentToken.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    31
    stream position:stream class zeroPosition.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    32
    [ (stream position < token startPosition) and:[stream atEnd not]] whileTrue:[
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    33
        stream next == Character cr ifTrue:
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    34
            [line := line + 1.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    35
            lastCrPosition := stream position]].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    36
    col := token startPosition  - lastCrPosition.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    37
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    38
    super reportErrorMessage: line printString , ':' , col printString, ' ' , aString
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    39
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    40
    "Created: / 20-06-2006 / 08:43:04 / janfrog"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    41
    "Modified: / 05-01-2007 / 12:57:48 / janfrog"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    42
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    43
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    44
!SmaCCAdvancedParser class methodsFor:'documentation'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    45
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    46
version
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    47
    ^ '$Header: /opt/data/cvs/stx/goodies/smaCC/SmaCC__SmaCCAdvancedParser.st,v 1.3 2007-01-09 14:53:54 vranyj1 Exp $'
15
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
    48
!
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
    49
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
    50
version_SVN
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
    51
    ^ '$Id$'
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    52
! !