/usr/share/bison/skeletons
NameSizeModeActions
bison.m4420190644editdlrm
c++-skel.m411690644editdlrm
c++.m4211990644editdlrm
c-like.m425640644editdlrm
c-skel.m411630644editdlrm
c.m4329180644editdlrm
d-skel.m411350644editdlrm
d.m4107300644editdlrm
glr.c910130644editdlrm
glr.cc126430644editdlrm
java-skel.m411660644editdlrm
java.m4145930644editdlrm
lalr1.cc512840644editdlrm
lalr1.d305580644editdlrm
lalr1.java370630644editdlrm
location.cc103760644editdlrm
README-D.txt18960644editdlrm
stack.hh39770644editdlrm
traceon.m4870644editdlrm
variant.hh150070644editdlrm
yacc.c712750644editdlrm
Edit: /usr/share/bison/skeletons/README-D.txt (1896B)
Some usage notes for the D Parser: - it is a port of the Java parser, so interface is very similar. - the lexer class needs to implement the interface 'Lexer' (similar to java). It typically (depending on options) looks like this: public interface Lexer { /** * Method to retrieve the beginning position of the last scanned token. * @return the position at which the last scanned token starts. */ @property YYPosition startPos (); /** * Method to retrieve the ending position of the last scanned token. * @return the first position beyond the last scanned token. */ @property YYPosition endPos (); /** * Method to retrieve the semantic value of the last scanned token. * @return the semantic value of the last scanned token. */ @property YYSemanticType semanticVal (); /** * Entry point for the scanner. Returns the token identifier corresponding * to the next token and prepares to return the semantic value * and beginning/ending positions of the token. * @return the token identifier corresponding to the next token. */ TokenKind yylex (); /** * Entry point for error reporting. Emits an error * referring to the given location in a user-defined way. * * @param loc The location of the element to which the * error message is related * @param s The string for the error message. */ void yyerror (YYLocation loc, string s); } - semantic types are handled by D unions (same as for C/C++ parsers) - the following (non-standard) %defines are supported: %define package "" %define api.parser.class "my_class_name>" %define position_type "my_position_type" %define location_type "my_location_type" - the following declarations basically work like in C/C++: %locations %error-verbose %parse-param %initial-action %code %union - %destructor is not yet supported