Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • bugfix/missing-newline-parse-error
  • develop
  • jastadd-fix-inc-param-debug
  • master
  • 1.0.0-pre-release.alpha
  • jastadd-2.3.5
6 results

Target

Select target project
No results found
Select Git revision
  • bugfix/missing-newline-parse-error
  • develop
  • jastadd-fix-inc-param-debug
  • master
  • 1.0.0-pre-release.alpha
  • jastadd-2.3.5
6 results
Show changes
Commits on Source (1)
......@@ -107,12 +107,18 @@ jastadd {
}
scanner {
include "src/main/jastadd/RelAst.flex"
include "src/main/jastadd/scanner/Header.flex", [-4]
include "src/main/jastadd/scanner/Preamble.flex", [-3]
include "src/main/jastadd/scanner/Macros.flex", [-2]
include "src/main/jastadd/scanner/RulesPreamble.flex", [-1]
include "src/main/jastadd/scanner/Keywords.flex", [0]
include "src/main/jastadd/scanner/Symbols.flex", [1]
include "src/main/jastadd/scanner/RulesPostamble.flex", [2]
}
parser {
include "src/main/jastadd/Preamble.parser"
include "src/main/jastadd/RelAst.parser"
include "src/main/jastadd/parser/Preamble.parser"
include "src/main/jastadd/parser/RelAst.parser"
}
}
}
......
package org.jastadd.relast.scanner;
import org.jastadd.relast.parser.RelAstParser.Terminals;
%%
%public
%final
%class RelAstScanner
%extends beaver.Scanner
%type beaver.Symbol
%function nextToken
%yylexthrow beaver.Scanner.Exception
%scanerror RelAstScanner.ScannerError
%line
%column
"abstract" { return sym(Terminals.ABSTRACT); }
"rel" { return sym(Terminals.RELATION); }
WhiteSpace = [ ] | \t | \f | \n | \r | \r\n
ID = [a-zA-Z$_][a-zA-Z0-9$_]*
TraditionalComment = [/][*][^*]*[*]+([^*/][^*]*[*]+)*[/]
EndOfLineComment = "//" [^\n\r]*
Comment = {TraditionalComment} | {EndOfLineComment}
%{
private StringBuilder stringLitSb = new StringBuilder();
private beaver.Symbol sym(short id) {
return new beaver.Symbol(id, yyline + 1, yycolumn + 1, yylength(), yytext());
}
private beaver.Symbol sym(short id, String text) {
return new beaver.Symbol(id, yyline + 1, yycolumn + 1, yylength(), text);
}
public static class ScannerError extends Error {
public ScannerError(String message) {
super(message);
}
}
%}
{ID} { return sym(Terminals.ID); }
<<EOF>> { return sym(Terminals.EOF); }
[^] { throw new ScannerError((yyline+1) +"," + (yycolumn+1) + ": Illegal character <"+yytext()+">"); }
%%
{WhiteSpace} { /* ignore */ }
{Comment} { return sym(Terminals.COMMENT); }
package org.jastadd.relast.scanner;
import org.jastadd.relast.parser.RelAstParser.Terminals;
%%
%public
%final
%class RelAstScanner
%extends beaver.Scanner
%type beaver.Symbol
%function nextToken
%yylexthrow beaver.Scanner.Exception
%scanerror RelAstScanner.ScannerError
%line
%column
%{
private StringBuilder stringLitSb = new StringBuilder();
private beaver.Symbol sym(short id) {
return new beaver.Symbol(id, yyline + 1, yycolumn + 1, yylength(), yytext());
}
private beaver.Symbol sym(short id, String text) {
return new beaver.Symbol(id, yyline + 1, yycolumn + 1, yylength(), text);
}
public static class ScannerError extends Error {
public ScannerError(String message) {
super(message);
}
}
%}
WhiteSpace = [ ] | \t | \f | \n | \r | \r\n
TraditionalComment = [/][*][^*]*[*]+([^*/][^*]*[*]+)*[/]
EndOfLineComment = "//" [^\n\r]*
Comment = {TraditionalComment} | {EndOfLineComment}
ID = [a-zA-Z$_][a-zA-Z0-9$_]*
%%
{WhiteSpace} { /* ignore */ }
{Comment} { return sym(Terminals.COMMENT); }
"abstract" { return sym(Terminals.ABSTRACT); }
"rel" { return sym(Terminals.RELATION); }
";" { return sym(Terminals.SCOL); }
":" { return sym(Terminals.COL); }
"::=" { return sym(Terminals.ASSIGN); }
......@@ -64,9 +13,3 @@ ID = [a-zA-Z$_][a-zA-Z0-9$_]*
"->" { return sym(Terminals.RIGHT); }
"<-" { return sym(Terminals.LEFT); }
"<->" { return sym(Terminals.BIDIRECTIONAL); }
// ID
{ID} { return sym(Terminals.ID); }
<<EOF>> { return sym(Terminals.EOF); }
[^] { throw new ScannerError((yyline+1) +"," + (yycolumn+1) + ": Illegal character <"+yytext()+">"); }