Skip to content

Commit

Permalink
add testCanParseAttributePrefixedWithStar
Browse files Browse the repository at this point in the history
  • Loading branch information
badetitou committed Aug 18, 2023
1 parent 2af2aef commit 5c2a149
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 43 deletions.
14 changes: 14 additions & 0 deletions src/Famix-Html-Importer-Tests/FamixHtmlImporterTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,20 @@ FamixHtmlImporterTest >> testCanImportTagWithEndOfLine [
equals: '"hello"'
]

{ #category : #initialization }
FamixHtmlImporterTest >> testCanParseAttributePrefixedWithStar [

importer importString: '<div *ngIf="hello"></div>'.
self assert: (htmlModel allWithType: FamixHtmlElement) size equals: 1.
self
assert: (htmlModel allWithType: FamixHtmlAttribute) size
equals: 1.
self
assert:
(htmlModel allWithType: FamixHtmlAttribute) anyOne attributeName
equals: '*ngIf'
]

{ #category : #initialization }
FamixHtmlImporterTest >> testCanParseAttributeWithComa [

Expand Down
5 changes: 3 additions & 2 deletions src/SmaCC_HTML/HTMLParser.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ HTMLParser class >> ambiguousTransitions [

{ #category : #'generated-accessing' }
HTMLParser class >> cacheId [
^'2023-08-18T16:29:03.68+02:00'
^'2023-08-18T16:38:18.924+02:00'
]

{ #category : #generated }
Expand Down Expand Up @@ -220,6 +220,7 @@ tag <TAG_NameStartChar>
tag <Attribute_tag_prefix>
: \[? \(? \#?
| \*
;
tag <Attribute_tag_suffix>
Expand Down Expand Up @@ -343,7 +344,7 @@ HTMLParser class >> reduceTable [
#(40 2 #liftFirstValue: 1613826 false)
#(26 3 #reduceActionForhtmlElements1: 354305 false)
#(35 1 #reduceActionForAttribute1: 1164289 false)
#(43 0 #reduceActionForStartATTVALUE1: 3830785 true)
#(43 0 #reduceActionForStartATTVALUE1: 3836929 true)
#(34 0 #reduceActionFor__SEA_WS___Attribute__htmlAttribute___1: 1113089 false)
#(30 0 #reduceActionFor__SEA_WS___Attribute__htmlAttribute___1: 658433 false)
#(31 5 #reduceActionForVoidElement1: 891905 false)
Expand Down
82 changes: 41 additions & 41 deletions src/SmaCC_HTML/HTMLScanner.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -1280,50 +1280,22 @@ HTMLScanner >> scanForToken [
currentCharacter == Character space ] ] ] whileTrue ].
^ self scan48 ].
scope == #default ifTrue: [ ^ self scan17 ].
scope == #attvalue ifTrue: [ ^ self scanForTokenX1 ].
scope == #tag ifTrue: [ ^ self scanForTokenX2 ].
scope == #attvalue ifTrue: [ ^ self scanForTokenX2 ].
scope == #tag ifTrue: [ ^ self scanForTokenX1 ].
^ self reportLastMatch
]

{ #category : #generated }
HTMLScanner >> scanForTokenX1 [

self step.
currentCharacter == Character space ifTrue: [ self scanForTokenX1X1 ].
currentCharacter == $" ifTrue: [ ^ self scan5 ].
currentCharacter == $# ifTrue: [ ^ self scan8 ].
currentCharacter == $' ifTrue: [ ^ self scan14 ].
currentCharacter == $< ifTrue: [ ^ self scan10 ].
currentCharacter isDigit ifTrue: [ ^ self scan16 ].
((currentCharacter between: Character tab and: Character lf) or: [
currentCharacter == Character cr ]) ifTrue: [ ^ self scan4 ].
((currentCharacter between: $+ and: $?) or: [
(currentCharacter between: $A and: $Z) or: [
currentCharacter == $_ or: [ currentCharacter between: $a and: $z ] ] ])
ifTrue: [ ^ self scan9 ].
^ self scan1
currentCharacter == $( ifTrue: [ ^ self scan54 ].
^ self scanForTokenX1X5
]

{ #category : #generated }
HTMLScanner >> scanForTokenX1X1 [

[
self recordMatch: #( 6 ).
self step.
currentCharacter == Character space ] whileTrue
]
{ #category : #generated }
HTMLScanner >> scanForTokenX2 [
self step.
currentCharacter == $# ifTrue: [ ^ self scan51 ].
^ self scanForTokenX2X5
]
{ #category : #generated }
HTMLScanner >> scanForTokenX2X1 [
self step.
currentCharacter == $# ifTrue: [ ^ self scan51 ].
currentCharacter == $( ifTrue: [ ^ self scan54 ].
Expand All @@ -1335,7 +1307,7 @@ HTMLScanner >> scanForTokenX2X1 [
]

{ #category : #generated }
HTMLScanner >> scanForTokenX2X2 [
HTMLScanner >> scanForTokenX1X2 [

self recordMatch: #( 11 ).
self step.
Expand All @@ -1344,7 +1316,7 @@ HTMLScanner >> scanForTokenX2X2 [
]

{ #category : #generated }
HTMLScanner >> scanForTokenX2X3 [
HTMLScanner >> scanForTokenX1X3 [

self recordMatch: #( 13 ).
self step.
Expand All @@ -1353,7 +1325,7 @@ HTMLScanner >> scanForTokenX2X3 [
]

{ #category : #generated }
HTMLScanner >> scanForTokenX2X4 [
HTMLScanner >> scanForTokenX1X4 [

self recordMatch: #( 12 ).
self step.
Expand All @@ -1362,14 +1334,14 @@ HTMLScanner >> scanForTokenX2X4 [
]

{ #category : #generated }
HTMLScanner >> scanForTokenX2X5 [
HTMLScanner >> scanForTokenX1X5 [

currentCharacter == $( ifTrue: [ ^ self scan54 ].
currentCharacter == $/ ifTrue: [ ^ self scanForTokenX2X4 ].
currentCharacter == $/ ifTrue: [ ^ self scanForTokenX1X4 ].
currentCharacter == $< ifTrue: [ ^ self scan2 ].
currentCharacter == $= ifTrue: [ ^ self scanForTokenX2X3 ].
currentCharacter == $> ifTrue: [ ^ self scanForTokenX2X2 ].
currentCharacter == $[ ifTrue: [ ^ self scanForTokenX2X1 ].
currentCharacter == $= ifTrue: [ ^ self scanForTokenX1X3 ].
currentCharacter == $> ifTrue: [ ^ self scanForTokenX1X2 ].
currentCharacter == $[ ifTrue: [ ^ self scanForTokenX1X1 ].
('#*' includes: currentCharacter) ifTrue: [ ^ self scan51 ].
((currentCharacter between: Character tab and: Character lf) or: [
currentCharacter == Character cr or: [
currentCharacter == Character space ] ]) ifTrue: [ ^ self scan4 ].
Expand All @@ -1378,3 +1350,31 @@ HTMLScanner >> scanForTokenX2X5 [
currentCharacter between: $a and: $z ] ]) ifTrue: [ ^ self scan52 ].
^ self scan1
]

{ #category : #generated }
HTMLScanner >> scanForTokenX2 [

self step.
currentCharacter == Character space ifTrue: [ self scanForTokenX2X1 ].
currentCharacter == $" ifTrue: [ ^ self scan5 ].
currentCharacter == $# ifTrue: [ ^ self scan8 ].
currentCharacter == $' ifTrue: [ ^ self scan14 ].
currentCharacter == $< ifTrue: [ ^ self scan10 ].
currentCharacter isDigit ifTrue: [ ^ self scan16 ].
((currentCharacter between: Character tab and: Character lf) or: [
currentCharacter == Character cr ]) ifTrue: [ ^ self scan4 ].
((currentCharacter between: $+ and: $?) or: [
(currentCharacter between: $A and: $Z) or: [
currentCharacter == $_ or: [ currentCharacter between: $a and: $z ] ] ])
ifTrue: [ ^ self scan9 ].
^ self scan1
]
{ #category : #generated }
HTMLScanner >> scanForTokenX2X1 [
[
self recordMatch: #( 6 ).
self step.
currentCharacter == Character space ] whileTrue
]

0 comments on commit 5c2a149

Please sign in to comment.