Skip to content

Commit

Permalink
tokens in Ada grammar; correct treatment for zero terminals
Browse files Browse the repository at this point in the history
git-svn-id: https://slps.svn.sourceforge.net/svnroot/slps@1048 ab42f6e0-554d-0410-b580-99e487e6eeb2
  • Loading branch information
grammarware committed May 23, 2011
1 parent 0f7943b commit e75c52a
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 6 deletions.
7 changes: 6 additions & 1 deletion topics/export/hypertext/bgf2fancy.xslt
Expand Up @@ -77,7 +77,12 @@
<li>
<xsl:text>Number of defined nonterminal symbols: </xsl:text>
<strong>
<xsl:value-of select="count(bgf:production/nonterminal[not(text()=../preceding-sibling::*/nonterminal/text())])"/>
<xsl:choose>
<xsl:when test="bgf:production/nonterminal[not(text()=../preceding-sibling::*/nonterminal/text())]">
<xsl:value-of select="count(bgf:production/nonterminal[not(text()=../preceding-sibling::*/nonterminal/text())])"/>
</xsl:when>
<xsl:otherwise>—</xsl:otherwise>
</xsl:choose>
</strong>
</li>
<li>
Expand Down
30 changes: 25 additions & 5 deletions topics/grammars/Makefile
@@ -1,17 +1,37 @@
all:

build:
cd ada && make build
cd c && make build
cd cpp && make build
cd csharp && make build
cd fortran && make build
cd java && make build
cd modula && make build

clean:
cd c && make clean
cd cpp && make clean
cd csharp && make clean
cd java && make clean
extract:
cd ada && make extract
cd c && make extract
cd cpp && make extract
cd csharp && make extract
cd fortran && make extract
cd java && make extract
cd modula && make extract

test:
cd ada && make test
cd c && make test
cd cpp && make test
cd csharp && make test
cd fortran && make test
cd java && make test
cd modula && make test

clean:
cd ada && make clean
cd c && make clean
cd cpp && make clean
cd csharp && make clean
cd fortran && make clean
cd java && make clean
cd modula && make clean
3 changes: 3 additions & 0 deletions topics/grammars/ada/Makefile
@@ -1,17 +1,20 @@
build:
cd kempe && make build
cd kellogg && make build
cd laemmel-verhoef && make build
cd lncs-2219 && make build
cd lncs-4348 && make build

clean:
cd kempe && make clean
cd kellogg && make clean
cd laemmel-verhoef && make clean
cd lncs-2219 && make clean
cd lncs-4348 && make clean

test:
cd kempe && make test
cd kellogg && make test
cd laemmel-verhoef && make test
cd lncs-2219 && make test
cd lncs-4348 && make test
Expand Down
96 changes: 96 additions & 0 deletions topics/grammars/ada/kellogg/ada.rsc.g
Expand Up @@ -1043,3 +1043,99 @@ package_body : p=PACKAGE body_is pkg_body_part end_id_opt SEMI ;
task_body : t=TASK body_is body_part SEMI ;

protected_body : p=PROTECTED body_is prot_op_bodies_opt end_id_opt SEMI ;

ABORT : 'abort' ;
ABS : 'abs' ;
ABSTRACT : 'abstract' ;
ACCEPT : 'accept' ;
ACCESS : 'access' ;
ALIASED : 'aliased' ;
ALL : 'all' ;
AND : 'and' ;
ARRAY : 'array' ;
AT : 'at' ;
BEGIN : 'begin' ;
BODY : 'body' ;
CASE : 'case' ;
CONSTANT : 'constant' ;
DECLARE : 'declare' ;
DELAY : 'delay' ;
DELTA : 'delta' ;
DIGITS : 'digits' ;
DO : 'do' ;
ELSE : 'else' ;
ELSIF : 'elsif' ;
END : 'end' ;
ENTRY : 'entry' ;
EXCEPTION : 'exception' ;
EXIT : 'exit' ;
FOR : 'for' ;
FUNCTION : 'function' ;
GENERIC : 'generic' ;
GOTO : 'goto' ;
IF : 'if' ;
IN : 'in' ;
IS : 'is' ;
LIMITED : 'limited' ;
LOOP : 'loop' ;
MOD : 'mod' ;
NEW : 'new' ;
NOT : 'not' ;
NuLL : 'null' ;
OF : 'of' ;
OR : 'or' ;
OTHERS : 'others' ;
OUT : 'out' ;
PACKAGE : 'package' ;
PRAGMA : 'pragma' ;
PRIVATE : 'private' ;
PROCEDURE : 'procedure' ;
PROTECTED : 'protected' ;
RAISE : 'raise' ;
RANGE : 'range' ;
RECORD : 'record' ;
REM : 'rem' ;
RENAMES : 'renames' ;
REQUEUE : 'requeue' ;
RETURN : 'return' ;
REVERSE : 'reverse' ;
SELECT : 'select' ;
SEPARATE : 'separate' ;
SUBTYPE : 'subtype' ;
TAGGED : 'tagged' ;
TASK : 'task' ;
TERMINATE : 'terminate' ;
THEN : 'then' ;
TYPE : 'type' ;
UNTIL : 'until' ;
USE : 'use' ;
WHEN : 'when' ;
WHILE : 'while' ;
WITH : 'with' ;
XOR : 'xor' ;
COMMENT_INTRO : '--' ;
DOT_DOT : '..' ;
LT_LT : '<<' ;
BOX : '<>' ;
GT_GT : '>>' ;
ASSIGN : ':=' ;
RIGHT_SHAFT : '=>' ;
NE : '/=' ;
LE : '<=' ;
GE : '>=' ;
EXPON : '**' ;
PIPE : '|' ;
CONCAT : '&' ;
DOT : '.' ;
EQ : '=' ;
LT_ : '<' ;
GT : '>' ;
PLUS : '+' ;
MINUS : '-' ;
STAR : '*' ;
DIV : '/' ;
LPAREN : '(' ;
RPAREN : ')' ;
COLON : ':' ;
COMMA : ',' ;
SEMI : ';' ;

0 comments on commit e75c52a

Please sign in to comment.