smalltalk
/
osmo-st-mgcp
Archived
1
0
Fork 0

Attempt to handle the MGCPParameter inside the command.

This commit is contained in:
Holger Hans Peter Freyther 2010-09-09 01:31:25 +08:00
parent f8b8bb6125
commit 42bc54688b
2 changed files with 41 additions and 3 deletions

View File

@ -5,7 +5,7 @@ Do not copy...
PackageLoader fileInPackage: 'PetitParser'.
PP.PPCompositeParser subclass: MGCPGrammar [
| MGCPMessage EOL One_WSP MGCPMessage MGCPCommandLine MGCPVerb transaction_id endpointName MGCPversion MGCPCommand |
| MGCPMessage EOL One_WSP MGCPMessage MGCPCommandLine MGCPVerb transaction_id endpointName MGCPversion MGCPParameter MGCPCommand ParameterValue |
<category: 'MGCP-Core'>
<comment: 'I am a the Grammar of the Media Gateway Control Protocol'>
"'Implement MGCPResponse'"
@ -74,7 +74,45 @@ PP.PPCompositeParser subclass: MGCPGrammar [
MGCPCommand [
<category: 'grammar-cmd'>
^ MGCPCommandLine
^ MGCPCommandLine, MGCPParameter star
]
MGCPParameter [
<category: 'grammar-cmd'>
^ ParameterValue, EOL
]
ParameterValue [
^ $K asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$B asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$C asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$I asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$N asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$X asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$L asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$M asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$R asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$S asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$D asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$O asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$P asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$E asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$Z asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$Z asParser, $: asParser, #blank asParser star, #word asParser star flatten /
'Z2' asParser, $: asParser, #blank asParser star, #word asParser star flatten /
'I2' asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$F asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$Q asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$T asParser, $: asParser, #blank asParser star, #word asParser star flatten /
'RM' asParser, $: asParser, #blank asParser star, #word asParser star flatten /
'RD' asParser, $: asParser, #blank asParser star, #word asParser star flatten /
$A asParser, $: asParser, #blank asParser star, #word asParser star flatten /
'ES' asParser, $: asParser, #blank asParser star, #word asParser star flatten /
'PL' asParser, $: asParser, #blank asParser star, #word asParser star flatten /
'MD' asParser, $: asParser, #blank asParser star, #word asParser star flatten
]
]
Eval [
MGCPGrammar initialize.
]

View File

@ -27,7 +27,7 @@ PP.PPCompositeParserTest subclass: MGCPGrammarTest [
res := self parse: 'AUEP 23444 13@mgw MGCP 1.0',
Character cr asString, Character lf asString.
self assert: res size = 8.
self assert: res size = 9.
self assert: (res at: 1) = 'AUEP'.
self assert: (res at: 3) = '23444'.
self assert: (res at: 5) = #('13' $@ 'mgw').