From dc5ca82081f00e30aa8be68b0473b74279a888a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Tue, 12 Jun 2018 17:53:24 +0200 Subject: [PATCH 01/13] Updated NOTICE.txt and version of JointyC Library jar file --- NOTICE.txt | 2 +- jar/{JointyC-v1.1.0.jar => JointyC-v2.0.0.jar} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename jar/{JointyC-v1.1.0.jar => JointyC-v2.0.0.jar} (100%) diff --git a/NOTICE.txt b/NOTICE.txt index ac439cb..b0aa663 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1,2 +1,2 @@ JointyC Library -Copyright 2017 Salvatore Giampa' \ No newline at end of file +Copyright 2017-2018 Salvatore Giampa' \ No newline at end of file diff --git a/jar/JointyC-v1.1.0.jar b/jar/JointyC-v2.0.0.jar similarity index 100% rename from jar/JointyC-v1.1.0.jar rename to jar/JointyC-v2.0.0.jar From 50d8d4581b83b7d9ce285ae27ec79f07c675350e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Tue, 12 Jun 2018 20:26:14 +0200 Subject: [PATCH 02/13] Fixed a very little bug into the StandardParser class --- jar/JointyC-v2.0.0.jar | Bin 357599 -> 355370 bytes .../analysis/parser/StandardParser.java | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/jar/JointyC-v2.0.0.jar b/jar/JointyC-v2.0.0.jar index 30d7c8c62c785c72e0bc146d0f11912156418e98..77693df464afc5e73be5fd62354166dfa66626b0 100644 GIT binary patch delta 14577 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 delta 16479 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 diff --git a/src/jointyc/analysis/parser/StandardParser.java b/src/jointyc/analysis/parser/StandardParser.java index b9b4524..00d532b 100644 --- a/src/jointyc/analysis/parser/StandardParser.java +++ b/src/jointyc/analysis/parser/StandardParser.java @@ -17,6 +17,7 @@ package jointyc.analysis.parser; +import java.io.EOFException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -219,6 +220,8 @@ public boolean equals(Object obj) { private int unexpectedPosition; + private boolean unexpectedEOF; + /** * Store the detected direct recursions (without forwarding the lexer). * Used to detect infinite recursions. @@ -320,13 +323,14 @@ public void setAxiom(String axiom){ public SyntaxTree parse() throws UnexpectedSymbolException { expected = new HashSet<>(); lexer.setStart(0); + unexpectedEOF = false; SyntaxTree root = parse(axiom); cache.clear(); lruBuffer.clear(); - if(!lexer.next()) { + if(!lexer.next() && !unexpectedEOF) { return root; } @@ -357,6 +361,7 @@ private SyntaxNode parse(String ruleHead) { for(String product : rule) { lexer.setStart(lexerPos); + lexer.next(); if(product.startsWith(TERMINAL_PREFIX)) { //terminal @@ -383,6 +388,9 @@ private SyntaxNode parse(String ruleHead) { continue; } } + else { + unexpectedEOF = true; + } if(unexpectedPosition < lexer.start()) expected.clear(); @@ -419,8 +427,10 @@ private SyntaxNode parse(String ruleHead) { } - if(accept) + if(accept) { + unexpectedEOF = false; break; + } else { node.nexts.clear(); lexerPos = lexerStart; From 75fb6e284940b8c07f00b0654cbb5a4a65a8a362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Wed, 13 Jun 2018 18:42:40 +0200 Subject: [PATCH 03/13] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a4c549..e69445a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,9 @@ For more details see the following: * JavaDoc: https://sv-giampa.github.io/JointyC-Library/ -* Tutorials and template project: https://github.com/sv-giampa/JointyC-Tutorials +* Tutorials Wiki: https://github.com/sv-giampa/JointyC-Tutorials/wiki + +* Tutorials and template project: https://github.com/sv-giampa/JointyC-Tutorials ## 1. Introduction. From f15b3acfa034655d029a4ab4b34b9035c69c0c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Wed, 13 Jun 2018 19:09:54 +0200 Subject: [PATCH 04/13] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index e69445a..dffa961 100644 --- a/README.md +++ b/README.md @@ -85,8 +85,7 @@ possible to divide the languages in modules, and at the same time, it is possible to design one interpreter for each language module. Then different modules and their interpreters may be composed in a single work. A JDL file is divided in two parts: lexicon and grammar. To define -a lexicon for the language, regular expressions are used. Each lexicon -type should be seen as a variable for the grammar. The grammar is +a lexicon for the language, regular expressions are used. The grammar is expressed in BNF (Backus-Naur Form), because, in many cases, the BNF is simpler to manage during semantic analysis than the EBNF (Extended BNF). A grammar rule cannot produce directly a ground terminal, but each From 55c6faa7673075a01adb20a1bbd6ddebf9d813e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Thu, 14 Jun 2018 00:50:45 +0200 Subject: [PATCH 05/13] Update README.md --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/README.md b/README.md index dffa961..03b992c 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,63 @@ For more details see the following: * Tutorials and template project: https://github.com/sv-giampa/JointyC-Tutorials +# A very fast presentation of the idea +After this very short description really few things will be clear, but probably the power of JointyC will be one of these. + + +Three main steps to write a compiler with JointyC: + +1) Write your language specifics in the JointyC Definition Language: +``` +//Language.jdl file +language: yourLanguage; + +lexicon:{ + myToken = /regex/$, "description of token"; + mySecondToken = /another regex/$, "description of the second token"; +} + +grammar:{ + axiom = nonTerminal $myToken; + nonTerminal = $mySecondToken; +} +``` + +2) write the interpreter of the language +``` +//MyInterpreter.java file +class MyInterpreter implements Interpreter{ + + @TerminalToken(type="yourLanguage.myToken") //bind the "firstToken" method to the "myToken" token + private String firstToken(){ + return "myToken"; + } + + @TerminalToken(type="yourLanguage.mySecondToken") //bind the "secondToken" method to the "mySecondToken" token + private String secondToken(SyntaxTree tree){ + return tree.token(); + } + + @NonTerminalToken(ruleHead="yourLanguage.axiom", ruleProduction = {"yourLanguage.nonTerminal", "$yourLanguage.myToken"}) //bind the "computeAxiom" method to the non-temrinal "axiom" + private String computeAxiom(String firstToken, String secondToken){ + return firstToken + " - " + secondToken; + } +} +``` + +3) instantiate the compiler: +``` +//some main() method or façade +JdlCompiler jdlc = new JdlCompiler(); +StandardCompiler compiler = jdlc.compileResource("Language.jdl", new MyInterpreter()); + +//...then use the compiler... +String compilationResult = compiler.compile("regexanother regex"); +System.out.println(compilationResult); //prints "regex - another regex" +``` + +# Objectives of the library + ## 1. Introduction. JointyC is a Java library to write compilers. Its main target is to move From 634bde26d5dd337d7c32881f775472cc020397d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Thu, 14 Jun 2018 00:53:03 +0200 Subject: [PATCH 06/13] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 03b992c..9d3bc1d 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,8 @@ String compilationResult = compiler.compile("regexanother regex"); System.out.println(compilationResult); //prints "regex - another regex" ``` +And now, please continue reading. + # Objectives of the library ## 1. Introduction. From c0c3e2218165e27ecab2b8f24f19ddb73272ed45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Thu, 14 Jun 2018 00:54:16 +0200 Subject: [PATCH 07/13] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 9d3bc1d..5e678e1 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,7 @@ For more details see the following: * Tutorials and template project: https://github.com/sv-giampa/JointyC-Tutorials # A very fast presentation of the idea -After this very short description really few things will be clear, but probably the power of JointyC will be one of these. - +After this very short description, really few things will be clear, but probably the power of JointyC will be one of these. Three main steps to write a compiler with JointyC: From ccafd9d5a435351fb71cd77bba62370cd65ac86a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Thu, 14 Jun 2018 09:43:23 +0200 Subject: [PATCH 08/13] Update README.md --- README.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5e678e1..9807872 100644 --- a/README.md +++ b/README.md @@ -11,19 +11,21 @@ For more details see the following: * Tutorials and template project: https://github.com/sv-giampa/JointyC-Tutorials +Follow a fast presentation of the library and more detailed introduction. + # A very fast presentation of the idea After this very short description, really few things will be clear, but probably the power of JointyC will be one of these. -Three main steps to write a compiler with JointyC: +Execute three main steps to write a compiler with JointyC: -1) Write your language specifics in the JointyC Definition Language: +1) write your language specifics in the JointyC Definition Language: ``` //Language.jdl file language: yourLanguage; lexicon:{ - myToken = /regex/$, "description of token"; - mySecondToken = /another regex/$, "description of the second token"; + myToken = /token1/$, "description of token"; + mySecondToken = /token2/$, "description of the second token"; } grammar:{ @@ -32,7 +34,7 @@ grammar:{ } ``` -2) write the interpreter of the language +2) write the interpreter of the language: ``` //MyInterpreter.java file class MyInterpreter implements Interpreter{ @@ -61,13 +63,14 @@ JdlCompiler jdlc = new JdlCompiler(); StandardCompiler compiler = jdlc.compileResource("Language.jdl", new MyInterpreter()); //...then use the compiler... -String compilationResult = compiler.compile("regexanother regex"); -System.out.println(compilationResult); //prints "regex - another regex" +String compilationResult = compiler.compile(" token1 token2 "); +System.out.println(compilationResult); //prints "token1 - token2" ``` And now, please continue reading. # Objectives of the library +This is a more detailed presentation of the library. ## 1. Introduction. From 159c089895e7bbf180b7a88ebf8ea4d079f9485b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Thu, 14 Jun 2018 11:36:27 +0200 Subject: [PATCH 09/13] Update README.md --- README.md | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 9807872..48b86ce 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,25 @@ For more details see the following: * Tutorials and template project: https://github.com/sv-giampa/JointyC-Tutorials -Follow a fast presentation of the library and more detailed introduction. +## Introduction + +JointyC is a Java library to write compilers. Its main target is to move +the attention of the developer from parsing to the semantic analysis and, +at the same time, to simplify this part of work. +The library is divided in two main modules: + +1. The analysis framework + +2. The JointyC Definition Language Compiler (JDLC) + +The first module exposes a framework to face up to the analysis work, +composed by lexical, syntactic and semantic analysis. +The second module is based on the first one and provides a compiler for +the JointyC Definition Language (JDL), used to define recursive-descent +parsers for context-free languages, that can be adorned with contextual +information during semantic analysis. + +Follows a fast presentation of the library and more detailed introduction. # A very fast presentation of the idea After this very short description, really few things will be clear, but probably the power of JointyC will be one of these. @@ -72,26 +90,7 @@ And now, please continue reading. # Objectives of the library This is a more detailed presentation of the library. -## 1. Introduction. - -JointyC is a Java library to write compilers. Its main target is to move -the attention of the developer from parsing to the semantic analysis and, -at the same time, to simplify this part of work. -The library is divided in two main modules: - -1. The analysis framework - -2. The JointyC Definition Language Compiler (JDLC) - -The first module exposes a framework to face up to the analysis work, -composed by lexical, syntactic and semantic analysis. -The second module is based on the first one and provides a compiler for -the JointyC Definition Language (JDL), used to define recursive-descent -parsers for context-free languages, that can be adorned with contextual -information during semantic analysis. - - -## 2. Software Engineering in the scope. +## Software Engineering in the scope As anticipated, the most important target of JointyC is to simplify the work of the developers, not only during construction, but also during @@ -117,7 +116,7 @@ More details over this process and other functionalities are described in the documentation and in the wiki. -## 3. The analysis framework. +## The analysis framework The analysis framework is divided in three sub-modules: lexer, parser and semantic analyzer. The framework provides all the interfaces that define @@ -136,7 +135,7 @@ necessarily use the JDL Compiler. Moreover, it is recommended to use the JDL Compiler, to obtain a higher maintenance and readability performance. -## 4. The JointyC Definition Language Compiler (JDL Compiler). +## The JointyC Definition Language Compiler (JDL Compiler) By using the JDL Compiler it is possible to define and compile a parser and the associated lexer at run-time. The objective is to have a double @@ -155,7 +154,7 @@ allows to keep the grammar and the access to the syntax tree as generic as possible. -## 5. Conclusions and recommendations. +## Conclusions and recommendations For the explained reasons, the JointyC library could be one of the best choices for designing a language for some project. It is emphasized From 71c48ad212a2dd159ceb8768f968d7066463f104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Thu, 14 Jun 2018 11:44:21 +0200 Subject: [PATCH 10/13] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 48b86ce..b73f365 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ runtime, but only loaded). The target, from the point of view of Software Engineering, is to write a parser according to its language specifics, and to modify it when the language specifics are changed or extended. -More details over this process and other functionalities are described +More details about this process and other functionalities are reported in the documentation and in the wiki. @@ -121,7 +121,7 @@ in the documentation and in the wiki. The analysis framework is divided in three sub-modules: lexer, parser and semantic analyzer. The framework provides all the interfaces that define the functionalities for lexers, parsers and interpreters. -Lexer and parser modules define a proper final implementation, indicated +Lexer and parser modules define proper final implementations, named with the "Standard" prefix: the StandardLexer and the StandardParser. The semantic module provides a standard syntax tree exploring machinery, defined by the SemanticAnalyzer class. This class implements an iterative @@ -161,7 +161,7 @@ choices for designing a language for some project. It is emphasized that this library is under Apache License 2.0, and then it could be integrated also in a proprietary software, or used as a starting point to obtain an enhanced version of it. To familiarize with JointyC and its -programming method, it is highly recommended to start exploring the +programming logics, it is highly recommended to start exploring the provided tutorials and documentation. From 5c511c44828f96b34b43c733dfd91db0987b4966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Wed, 29 Aug 2018 11:32:55 +0200 Subject: [PATCH 11/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b73f365..b35132f 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ System.out.println(compilationResult); //prints "token1 - token2" And now, please continue reading. -# Objectives of the library +# Goals of the library This is a more detailed presentation of the library. ## Software Engineering in the scope From 2640c3a4cddd0d3b0668a9359f7349da0a25cca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Wed, 29 Aug 2018 11:33:20 +0200 Subject: [PATCH 12/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b35132f..62fd14f 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ This is a more detailed presentation of the library. ## Software Engineering in the scope -As anticipated, the most important target of JointyC is to simplify the +As anticipated, the most important goal of JointyC is to simplify the work of the developers, not only during construction, but also during maintenance. In fact, writing a recursive descent parser may result in a difficult maintenance task. On the other hand, using a parser generator From d1a3500841f9a301f6721b2fb55407b6fa1066d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvatore=20Giamp=C3=A0?= Date: Thu, 18 Oct 2018 11:15:18 +0200 Subject: [PATCH 13/13] * Added the FileCharSequence class, that enabled the Lexer to read directly from a file through a paging managed with a Least-Recently-Used policy. * Added the @Language annotation to the semantic analysis package. This allows to define a default binding between the Interpreter methods and a specific language. See documentation of the @Language interface, for more details. * Removed all warnings from javadoc generation --- docs/allclasses-frame.html | 5 +- docs/allclasses-noframe.html | 5 +- docs/constant-values.html | 4 +- docs/deprecated-list.html | 4 +- docs/help-doc.html | 4 +- docs/index-files/index-1.html | 6 +- docs/index-files/index-10.html | 8 +- docs/index-files/index-11.html | 4 +- docs/index-files/index-12.html | 4 +- docs/index-files/index-13.html | 4 +- docs/index-files/index-14.html | 4 +- docs/index-files/index-15.html | 4 +- docs/index-files/index-16.html | 16 +- docs/index-files/index-17.html | 6 +- docs/index-files/index-18.html | 6 +- docs/index-files/index-19.html | 4 +- docs/index-files/index-2.html | 10 +- docs/index-files/index-20.html | 4 +- docs/index-files/index-3.html | 4 +- docs/index-files/index-4.html | 4 +- docs/index-files/index-5.html | 4 +- docs/index-files/index-6.html | 4 +- docs/index-files/index-7.html | 4 +- docs/index-files/index-8.html | 6 +- docs/index-files/index-9.html | 4 +- docs/index.html | 2 +- docs/jointyc/analysis/StandardCompiler.html | 38 ++- .../analysis/class-use/StandardCompiler.html | 6 +- .../jointyc/analysis/lexer/EditableLexer.html | 15 +- docs/jointyc/analysis/lexer/Lexer.html | 76 +++--- docs/jointyc/analysis/lexer/LexerWrapper.html | 40 +-- .../jointyc/analysis/lexer/StandardLexer.html | 52 ++-- .../lexer/class-use/EditableLexer.html | 4 +- .../analysis/lexer/class-use/Lexer.html | 4 +- .../lexer/class-use/LexerWrapper.html | 4 +- .../lexer/class-use/StandardLexer.html | 4 +- .../jointyc/analysis/lexer/package-frame.html | 4 +- .../analysis/lexer/package-summary.html | 4 +- docs/jointyc/analysis/lexer/package-tree.html | 4 +- docs/jointyc/analysis/lexer/package-use.html | 4 +- docs/jointyc/analysis/package-frame.html | 4 +- docs/jointyc/analysis/package-summary.html | 4 +- docs/jointyc/analysis/package-tree.html | 4 +- docs/jointyc/analysis/package-use.html | 4 +- .../analysis/parser/EditableParser.html | 32 ++- docs/jointyc/analysis/parser/Parser.html | 9 +- .../analysis/parser/ParserWrapper.html | 9 +- .../analysis/parser/StandardParser.html | 35 +-- .../analysis/parser/SyntaxIterator.html | 6 +- docs/jointyc/analysis/parser/SyntaxTree.html | 72 ++--- .../parser/class-use/EditableParser.html | 4 +- .../analysis/parser/class-use/Parser.html | 4 +- .../parser/class-use/ParserWrapper.html | 4 +- .../parser/class-use/StandardParser.html | 4 +- .../parser/class-use/SyntaxIterator.html | 4 +- .../analysis/parser/class-use/SyntaxTree.html | 8 +- .../exception/InfiniteRecursionException.html | 4 +- .../exception/InvalidRuleNameException.html | 4 +- ...ectedSymbolException.ExpectedTerminal.html | 8 +- .../exception/UnexpectedSymbolException.html | 38 +-- .../class-use/InfiniteRecursionException.html | 4 +- .../class-use/InvalidRuleNameException.html | 4 +- ...ectedSymbolException.ExpectedTerminal.html | 10 +- .../class-use/UnexpectedSymbolException.html | 12 +- .../parser/exception/package-frame.html | 4 +- .../parser/exception/package-summary.html | 4 +- .../parser/exception/package-tree.html | 4 +- .../parser/exception/package-use.html | 4 +- .../analysis/parser/package-frame.html | 4 +- .../analysis/parser/package-summary.html | 6 +- .../jointyc/analysis/parser/package-tree.html | 4 +- docs/jointyc/analysis/parser/package-use.html | 6 +- .../analysis/semantic/Interpreter.html | 14 +- .../SemanticAnalyzer.ControlCode.html | 4 +- .../analysis/semantic/SemanticAnalyzer.html | 4 +- .../semantic/annotation/Language.html | 233 ++++++++++++++++ .../semantic/annotation/NoBufferClear.html | 8 +- .../semantic/annotation/NonTerminalToken.html | 4 +- .../annotation/NonTerminalTokens.html | 4 +- .../semantic/annotation/TerminalToken.html | 12 +- .../semantic/annotation/TerminalTokens.html | 4 +- .../annotation/class-use/Language.html | 124 +++++++++ .../annotation/class-use/NoBufferClear.html | 4 +- .../class-use/NonTerminalToken.html | 4 +- .../class-use/NonTerminalTokens.html | 4 +- .../annotation/class-use/TerminalToken.html | 4 +- .../annotation/class-use/TerminalTokens.html | 4 +- .../semantic/annotation/package-frame.html | 5 +- .../semantic/annotation/package-summary.html | 18 +- .../semantic/annotation/package-tree.html | 5 +- .../semantic/annotation/package-use.html | 4 +- .../semantic/class-use/Interpreter.html | 6 +- .../SemanticAnalyzer.ControlCode.html | 4 +- .../semantic/class-use/SemanticAnalyzer.html | 4 +- .../exception/AnnotationException.html | 4 +- .../exception/AxiomBufferClearException.html | 4 +- ...allyExclusiveInterpretationsException.html | 4 +- .../NonTerminalReplicationException.html | 4 +- .../semantic/exception/SemanticException.html | 27 +- .../TerminalReplicationException.html | 4 +- .../exception/UnknownParameterException.html | 4 +- .../class-use/AnnotationException.html | 4 +- .../class-use/AxiomBufferClearException.html | 4 +- ...allyExclusiveInterpretationsException.html | 4 +- .../NonTerminalReplicationException.html | 4 +- .../class-use/SemanticException.html | 12 +- .../TerminalReplicationException.html | 4 +- .../class-use/UnknownParameterException.html | 4 +- .../semantic/exception/package-frame.html | 4 +- .../semantic/exception/package-summary.html | 4 +- .../semantic/exception/package-tree.html | 4 +- .../semantic/exception/package-use.html | 4 +- .../analysis/semantic/package-frame.html | 4 +- .../analysis/semantic/package-summary.html | 4 +- .../analysis/semantic/package-tree.html | 4 +- .../analysis/semantic/package-use.html | 4 +- docs/jointyc/jdlc/JdlCompiler.html | 18 +- docs/jointyc/jdlc/class-use/JdlCompiler.html | 4 +- .../NotDeclaredTerminalException.html | 4 +- .../NotDeclaredTerminalException.html | 4 +- .../jointyc/jdlc/exception/package-frame.html | 4 +- .../jdlc/exception/package-summary.html | 4 +- docs/jointyc/jdlc/exception/package-tree.html | 4 +- docs/jointyc/jdlc/exception/package-use.html | 4 +- docs/jointyc/jdlc/package-frame.html | 4 +- docs/jointyc/jdlc/package-summary.html | 4 +- docs/jointyc/jdlc/package-tree.html | 4 +- docs/jointyc/jdlc/package-use.html | 4 +- docs/overview-frame.html | 4 +- docs/overview-summary.html | 4 +- docs/overview-tree.html | 5 +- docs/serialized-form.html | 14 +- exportJar.jardesc | 21 ++ jar/JointyC-v2.0.1.jar | Bin 0 -> 376745 bytes src/jointyc/analysis/StandardCompiler.java | 12 +- src/jointyc/analysis/lexer/EditableLexer.java | 7 +- src/jointyc/analysis/lexer/Lexer.java | 56 ++-- src/jointyc/analysis/lexer/LexerWrapper.java | 8 +- src/jointyc/analysis/lexer/StandardLexer.java | 27 +- .../analysis/parser/EditableParser.java | 34 ++- src/jointyc/analysis/parser/Parser.java | 5 +- .../analysis/parser/StandardParser.java | 4 +- .../analysis/parser/SyntaxIterator.java | 2 +- src/jointyc/analysis/parser/SyntaxNode.java | 10 +- src/jointyc/analysis/parser/SyntaxTree.java | 66 ++--- .../exception/UnexpectedSymbolException.java | 36 ++- .../analysis/semantic/Interpreter.java | 12 +- .../analysis/semantic/SemanticAnalyzer.java | 204 ++++++++------ .../semantic/annotation/Language.java | 41 +++ .../semantic/annotation/TerminalToken.java | 2 +- .../semantic/exception/SemanticException.java | 8 +- .../TerminalReplicationException.java | 2 +- .../charsequence/CompositeCharSequence.java | 137 ++++++++++ .../charsequence/FileCharSequence.java | 252 ++++++++++++++++++ src/jointyc/jdlc/JdlCompiler.java | 11 +- src/jointyc/jdlc/JdlInterpreter.java | 32 +-- 156 files changed, 1680 insertions(+), 714 deletions(-) create mode 100644 docs/jointyc/analysis/semantic/annotation/Language.html create mode 100644 docs/jointyc/analysis/semantic/annotation/class-use/Language.html create mode 100644 exportJar.jardesc create mode 100644 jar/JointyC-v2.0.1.jar create mode 100644 src/jointyc/analysis/semantic/annotation/Language.java create mode 100644 src/jointyc/charsequence/CompositeCharSequence.java create mode 100644 src/jointyc/charsequence/FileCharSequence.java diff --git a/docs/allclasses-frame.html b/docs/allclasses-frame.html index 4c5aafa..7fdff84 100644 --- a/docs/allclasses-frame.html +++ b/docs/allclasses-frame.html @@ -2,9 +2,9 @@ - + All Classes - + @@ -20,6 +20,7 @@

All Classes

  • Interpreter
  • InvalidRuleNameException
  • JdlCompiler
  • +
  • Language
  • Lexer
  • LexerWrapper
  • MutuallyExclusiveInterpretationsException
  • diff --git a/docs/allclasses-noframe.html b/docs/allclasses-noframe.html index c1d8761..87b7423 100644 --- a/docs/allclasses-noframe.html +++ b/docs/allclasses-noframe.html @@ -2,9 +2,9 @@ - + All Classes - + @@ -20,6 +20,7 @@

    All Classes

  • Interpreter
  • InvalidRuleNameException
  • JdlCompiler
  • +
  • Language
  • Lexer
  • LexerWrapper
  • MutuallyExclusiveInterpretationsException
  • diff --git a/docs/constant-values.html b/docs/constant-values.html index 30b1202..af9d4dd 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -2,9 +2,9 @@ - + Constant Field Values - + diff --git a/docs/deprecated-list.html b/docs/deprecated-list.html index 4525d4e..126e1bf 100644 --- a/docs/deprecated-list.html +++ b/docs/deprecated-list.html @@ -2,9 +2,9 @@ - + Deprecated List - + diff --git a/docs/help-doc.html b/docs/help-doc.html index 0d8cd6a..1d8b0c3 100644 --- a/docs/help-doc.html +++ b/docs/help-doc.html @@ -2,9 +2,9 @@ - + API Help - + diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html index fd17e52..aec1edd 100644 --- a/docs/index-files/index-1.html +++ b/docs/index-files/index-1.html @@ -2,9 +2,9 @@ - + A-Index - + @@ -90,7 +90,7 @@

    A

     
    addType(String, String, String, boolean) - Method in interface jointyc.analysis.lexer.EditableLexer
    -
    Add a new token type.
    +
    Add a new token type, validating the regex and throwing a PatternSyntaxException in the case that the regex is not valid.
    addType(String, String, String) - Method in interface jointyc.analysis.lexer.EditableLexer
    diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html index fe8740f..9f12da6 100644 --- a/docs/index-files/index-10.html +++ b/docs/index-files/index-10.html @@ -2,9 +2,9 @@ - + L-Index - + @@ -74,6 +74,10 @@

    L

    +
    Language - Annotation Type in jointyc.analysis.semantic.annotation
    +
    +
    Annotate an Interpreter subclass to be bound to a language.
    +
    Lexer - Interface in jointyc.analysis.lexer
    Defines the interface of a generic lexer.
    diff --git a/docs/index-files/index-11.html b/docs/index-files/index-11.html index e38656d..c48dcf8 100644 --- a/docs/index-files/index-11.html +++ b/docs/index-files/index-11.html @@ -2,9 +2,9 @@ - + M-Index - + diff --git a/docs/index-files/index-12.html b/docs/index-files/index-12.html index ae6dbde..f4bb308 100644 --- a/docs/index-files/index-12.html +++ b/docs/index-files/index-12.html @@ -2,9 +2,9 @@ - + N-Index - + diff --git a/docs/index-files/index-13.html b/docs/index-files/index-13.html index 63f911c..cc3d8bd 100644 --- a/docs/index-files/index-13.html +++ b/docs/index-files/index-13.html @@ -2,9 +2,9 @@ - + P-Index - + diff --git a/docs/index-files/index-14.html b/docs/index-files/index-14.html index 0adcefd..bc2b0e3 100644 --- a/docs/index-files/index-14.html +++ b/docs/index-files/index-14.html @@ -2,9 +2,9 @@ - + Q-Index - + diff --git a/docs/index-files/index-15.html b/docs/index-files/index-15.html index 145393c..9d71273 100644 --- a/docs/index-files/index-15.html +++ b/docs/index-files/index-15.html @@ -2,9 +2,9 @@ - + R-Index - + diff --git a/docs/index-files/index-16.html b/docs/index-files/index-16.html index 91e65d8..64eec56 100644 --- a/docs/index-files/index-16.html +++ b/docs/index-files/index-16.html @@ -2,9 +2,9 @@ - + S-Index - + @@ -92,20 +92,22 @@

    S

    Creates a new SemanticException
    SemanticException(Throwable, SyntaxTree) - Constructor for exception jointyc.analysis.semantic.exception.SemanticException
    -
     
    +
    + +
    setAxiom(String) - Method in interface jointyc.analysis.parser.EditableParser
    Sets the axiom of the grammar to the specified non-terminal symbol.
    setAxiom(String) - Method in class jointyc.analysis.parser.StandardParser
     
    -
    setInput(String) - Method in interface jointyc.analysis.lexer.Lexer
    +
    setInput(CharSequence) - Method in interface jointyc.analysis.lexer.Lexer
    Sets the input string for this lexer
    -
    setInput(String) - Method in class jointyc.analysis.lexer.LexerWrapper
    +
    setInput(CharSequence) - Method in class jointyc.analysis.lexer.LexerWrapper
     
    -
    setInput(String) - Method in class jointyc.analysis.lexer.StandardLexer
    +
    setInput(CharSequence) - Method in class jointyc.analysis.lexer.StandardLexer
     
    setLexer(Lexer) - Method in interface jointyc.analysis.parser.Parser
    @@ -191,7 +193,7 @@

    S

     
    SyntaxIterator - Class in jointyc.analysis.parser
    -
    Ddefines a simple, double direction, iterator over the sons of syntax node.
    +
    Defines a simple, double direction, iterator over the sons of syntax node.
    SyntaxIterator(List<? extends SyntaxTree>, boolean) - Constructor for class jointyc.analysis.parser.SyntaxIterator
    diff --git a/docs/index-files/index-17.html b/docs/index-files/index-17.html index c76bcbe..a2c2347 100644 --- a/docs/index-files/index-17.html +++ b/docs/index-files/index-17.html @@ -2,9 +2,9 @@ - + T-Index - + @@ -106,7 +106,7 @@

    T

    token(String) - Method in interface jointyc.analysis.lexer.Lexer
    -
    Recognizes if the last discovered tokens is a member of the specified type group.
    +
    Recognizes if the last discovered token is a member of the specified type group.
    token() - Method in interface jointyc.analysis.lexer.Lexer
    diff --git a/docs/index-files/index-18.html b/docs/index-files/index-18.html index ca3866f..4db0177 100644 --- a/docs/index-files/index-18.html +++ b/docs/index-files/index-18.html @@ -2,9 +2,9 @@ - + U-Index - + @@ -82,7 +82,7 @@

    U

    Thrown when a parser has found an unexpected symbol.
    -
    UnexpectedSymbolException(Set<UnexpectedSymbolException.ExpectedTerminal>, String, int, String) - Constructor for exception jointyc.analysis.parser.exception.UnexpectedSymbolException
    +
    UnexpectedSymbolException(Set<UnexpectedSymbolException.ExpectedTerminal>, CharSequence, int, CharSequence) - Constructor for exception jointyc.analysis.parser.exception.UnexpectedSymbolException
    Construct the exception.
    diff --git a/docs/index-files/index-19.html b/docs/index-files/index-19.html index afe33b6..863ad09 100644 --- a/docs/index-files/index-19.html +++ b/docs/index-files/index-19.html @@ -2,9 +2,9 @@ - + V-Index - + diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html index c7b798f..a42753b 100644 --- a/docs/index-files/index-2.html +++ b/docs/index-files/index-2.html @@ -2,9 +2,9 @@ - + C-Index - + @@ -78,7 +78,9 @@

    C

    The position in columns of the unexpected token.
    -
    compile(String) - Method in class jointyc.analysis.StandardCompiler
    +
    compile(CharSequence) - Method in class jointyc.analysis.StandardCompiler
    +
     
    +
    compile(File) - Method in class jointyc.analysis.StandardCompiler
     
    compileFile(String, Interpreter) - Method in class jointyc.jdlc.JdlCompiler
    @@ -88,7 +90,7 @@

    C

    Compile a JDL text file included as a Java resource and creates a StandardCompiler with the specified interpreter
    -
    compileSource(String, Interpreter) - Method in class jointyc.jdlc.JdlCompiler
    +
    compileSource(CharSequence, Interpreter) - Method in class jointyc.jdlc.JdlCompiler
    Compile a JDL string and creates a StandardCompiler with the specified interpreter
    diff --git a/docs/index-files/index-20.html b/docs/index-files/index-20.html index 8a3683a..4ee0278 100644 --- a/docs/index-files/index-20.html +++ b/docs/index-files/index-20.html @@ -2,9 +2,9 @@ - + W-Index - + diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html index ea90db2..2c1a585 100644 --- a/docs/index-files/index-3.html +++ b/docs/index-files/index-3.html @@ -2,9 +2,9 @@ - + D-Index - + diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html index 3539b15..53cf41a 100644 --- a/docs/index-files/index-4.html +++ b/docs/index-files/index-4.html @@ -2,9 +2,9 @@ - + E-Index - + diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html index 206ca32..87b0f5b 100644 --- a/docs/index-files/index-5.html +++ b/docs/index-files/index-5.html @@ -2,9 +2,9 @@ - + F-Index - + diff --git a/docs/index-files/index-6.html b/docs/index-files/index-6.html index 76160da..55b063d 100644 --- a/docs/index-files/index-6.html +++ b/docs/index-files/index-6.html @@ -2,9 +2,9 @@ - + G-Index - + diff --git a/docs/index-files/index-7.html b/docs/index-files/index-7.html index 48e8dac..0cf40c9 100644 --- a/docs/index-files/index-7.html +++ b/docs/index-files/index-7.html @@ -2,9 +2,9 @@ - + H-Index - + diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html index d42e8e4..f30bd9e 100644 --- a/docs/index-files/index-8.html +++ b/docs/index-files/index-8.html @@ -2,9 +2,9 @@ - + I-Index - + @@ -84,7 +84,7 @@

    I

    input() - Method in interface jointyc.analysis.lexer.Lexer
    -
    Get the input string setted by the Lexer.setInput(String) method.
    +
    Get the input CharSequence.
    input() - Method in class jointyc.analysis.lexer.LexerWrapper
     
    diff --git a/docs/index-files/index-9.html b/docs/index-files/index-9.html index 1d16a85..32a87d5 100644 --- a/docs/index-files/index-9.html +++ b/docs/index-files/index-9.html @@ -2,9 +2,9 @@ - + J-Index - + diff --git a/docs/index.html b/docs/index.html index d0f0417..e4919be 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,7 +2,7 @@ - + Generated Documentation (Untitled) @@ -18,7 +18,7 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -162,21 +162,25 @@

    Method Summary

    java.lang.Object -compile(java.lang.String source)  +compile(java.lang.CharSequence source)  +java.lang.Object +compile(java.io.File file)  + + Interpreter getInterpreter()
    Get the interpreter used by this compiler
    - + Lexer getLexer()
    Get the lexer used by this compiler
    - + Parser getParser()
    Get the parser used by this compiler
    @@ -222,13 +226,13 @@

    StandardCompiler

    Method Detail

    - +
    • compile

      -
      public java.lang.Object compile(java.lang.String source)
      +
      public java.lang.Object compile(java.lang.CharSequence source)
                                throws UnexpectedSymbolException,
                                       SemanticException
      @@ -238,6 +242,24 @@

      compile

    + + + + diff --git a/docs/jointyc/analysis/class-use/StandardCompiler.html b/docs/jointyc/analysis/class-use/StandardCompiler.html index 342cb78..443c9be 100644 --- a/docs/jointyc/analysis/class-use/StandardCompiler.html +++ b/docs/jointyc/analysis/class-use/StandardCompiler.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.StandardCompiler - + @@ -118,7 +118,7 @@

    Uses of StandardCompiler -JdlCompiler.compileSource(java.lang.String source, +JdlCompiler.compileSource(java.lang.CharSequence source, Interpreter interpreter)
    Compile a JDL string and creates a StandardCompiler with the specified interpreter
    diff --git a/docs/jointyc/analysis/lexer/EditableLexer.html b/docs/jointyc/analysis/lexer/EditableLexer.html index 42833f4..5897998 100644 --- a/docs/jointyc/analysis/lexer/EditableLexer.html +++ b/docs/jointyc/analysis/lexer/EditableLexer.html @@ -2,9 +2,9 @@ - + EditableLexer - + @@ -163,7 +163,7 @@

    Method Summary

    java.lang.String regex, java.lang.String description, boolean skip)
    -
    Add a new token type.
    +
    Add a new token type, validating the regex and throwing a PatternSyntaxException in the case that the regex is not valid.
    @@ -178,7 +178,7 @@

    Method Summary

    Methods inherited from interface jointyc.analysis.lexer.Lexer

    -description, end, input, next, regex, setInput, setStart, similarTypes, start, token, token, tokenType +description, end, input, next, regex, setInput, setStart, similarTypes, start, token, token, tokenType @@ -203,14 +203,17 @@

    addType

    void addType(java.lang.String type,
                  java.lang.String regex,
                  java.lang.String description,
    -             boolean skip)
    -
    Add a new token type.
    + boolean skip) + throws java.util.regex.PatternSyntaxException +
    Add a new token type, validating the regex and throwing a PatternSyntaxException in the case that the regex is not valid.
    Parameters:
    type - the type name
    regex - the regular expression that match the new type
    description - a printable description for this type
    skip - true if this token type must be skipped by the lexer
    +
    Throws:
    +
    java.util.regex.PatternSyntaxException - when the regex is not valid
    diff --git a/docs/jointyc/analysis/lexer/Lexer.html b/docs/jointyc/analysis/lexer/Lexer.html index e67af03..2bb05ce 100644 --- a/docs/jointyc/analysis/lexer/Lexer.html +++ b/docs/jointyc/analysis/lexer/Lexer.html @@ -2,9 +2,9 @@ - + Lexer - + @@ -115,29 +115,32 @@

    Interface Lexer


    public interface Lexer
     extends java.lang.Cloneable
    -
    Defines the interface of a generic lexer.
    -
    +
    Defines the interface of a generic lexer.
    +
    A lexer is thought to recognize the membership of tokens to some "type", - defined through some notation, such as regular expressions.
    -
    + defined through some notation, such as regular expressions.
    +
    A lexer is generically non editable. This interface - does not provide any modifier method for the lex rules (see EditableLexer).
    -
    + does not provide any modifier method for the lex rules (see EditableLexer).
    +
    A token might match multiple types, and each matched type might - refer to a certain token with a certain length.
    -
    + refer to a certain token with a certain length.
    +
    For instance:
      -
    • Three token types could be defined:
        -
      • - "double": matches double precision floating points (e.g. "31.4"); -
      • - "integer": matches integer number (e.g. "15"); -
      • - "ip": matches an Internet Protocol Address (e.g. "192.168.1.1"); -
      +
    • Three token types could be defined: +
        +
      • - "double": matches double precision floating points (e.g. "31.4"); +
      • - "integer": matches integer number (e.g. "15"); +
      • - "ip": matches an Internet Protocol Address (e.g. "192.168.1.1"); +
      -
    • the token "23.57.72.4":
        -
      • - matches the type "double" as "23.57"; -
      • - matches the type "integer" as "23"; -
      • - matches the type "ip" as "23.57.72.4"; +
      • the token "23.57.72.4": +
          +
        • - matches the type "double" as "23.57"; +
        • - matches the type "integer" as "23"; +
        • - matches the type "ip" as "23.57.72.4"; +
    Author:
    @@ -174,9 +177,9 @@

    Method Summary

    -java.lang.String +java.lang.CharSequence input() -
    Get the input string setted by the setInput(String) method.
    +
    Get the input CharSequence.
    @@ -193,7 +196,7 @@

    Method Summary

    void -setInput(java.lang.String input) +setInput(java.lang.CharSequence input)
    Sets the input string for this lexer
    @@ -216,15 +219,15 @@

    Method Summary

    -java.lang.String +java.lang.CharSequence token()
    Get the token that matches the default type of the matched types.
    -java.lang.String +java.lang.CharSequence token(java.lang.String type) -
    Recognizes if the last discovered tokens is a member of the specified type group.
    +
    Recognizes if the last discovered token is a member of the specified type group.
    @@ -248,17 +251,20 @@

    Method Summary

    Method Detail

    - +
    • setInput

      -
      void setInput(java.lang.String input)
      +
      void setInput(java.lang.CharSequence input)
      +       throws java.util.regex.PatternSyntaxException
      Sets the input string for this lexer
      Parameters:
      input - the string to lex
      +
      Throws:
      +
      java.util.regex.PatternSyntaxException
    @@ -268,14 +274,14 @@

    setInput

    • token

      -
      java.lang.String token(java.lang.String type)
      -
      Recognizes if the last discovered tokens is a member of the specified type group.
      - This method should be used after a call to the next() method.
      -
      +
      java.lang.CharSequence token(java.lang.String type)
      +
      Recognizes if the last discovered token is a member of the specified type group.
      + This method should be used after a call to the next() method.
      +
      For example:
      • if there are three types, "double", "integer" and "letters", the token "38.5" would match the type "double" as "38.5" and the type "integer" as "38", but not - the type "string".
        + the type "string".
        Then at position 0 of the token " 38.5 " (note the spaces before character '3' and after character '5'):
        • the call token("double") will return "38.5"; @@ -299,7 +305,7 @@

          token

          • token

            -
            java.lang.String token()
            +
            java.lang.CharSequence token()
            Get the token that matches the default type of the matched types. Generally the default token type is the matched type witch was first added to the lexer rules. The default type definition could change for some implementations.
            @@ -389,8 +395,8 @@

            setStart

            • input

              -
              java.lang.String input()
              -
              Get the input string setted by the setInput(String) method.
              +
              java.lang.CharSequence input()
              +
              Get the input CharSequence.
              Returns:
              the input string
              diff --git a/docs/jointyc/analysis/lexer/LexerWrapper.html b/docs/jointyc/analysis/lexer/LexerWrapper.html index 96e2de4..d65eb17 100644 --- a/docs/jointyc/analysis/lexer/LexerWrapper.html +++ b/docs/jointyc/analysis/lexer/LexerWrapper.html @@ -2,9 +2,9 @@ - + LexerWrapper - + @@ -152,9 +152,9 @@

              Method Summary

              -java.lang.String +java.lang.CharSequence input() -
              Get the input string setted by the Lexer.setInput(String) method.
              +
              Get the input CharSequence.
              @@ -171,7 +171,7 @@

              Method Summary

              void -setInput(java.lang.String input) +setInput(java.lang.CharSequence input)
              Sets the input string for this lexer
              @@ -194,15 +194,15 @@

              Method Summary

              -java.lang.String +java.lang.CharSequence token()
              Get the token that matches the default type of the matched types.
              -java.lang.String +java.lang.CharSequence token(java.lang.String type) -
              Recognizes if the last discovered tokens is a member of the specified type group.
              +
              Recognizes if the last discovered token is a member of the specified type group.
              @@ -246,18 +246,18 @@

              wrap

              public static Lexer wrap(EditableLexer lexer)
            - +
            • setInput

              -
              public void setInput(java.lang.String input)
              -
              Description copied from interface: Lexer
              +
              public void setInput(java.lang.CharSequence input)
              +
              Description copied from interface: Lexer
              Sets the input string for this lexer
              Specified by:
              -
              setInput in interface Lexer
              +
              setInput in interface Lexer
              Parameters:
              input - the string to lex
              @@ -269,15 +269,15 @@

              setInput

              • token

                -
                public java.lang.String token(java.lang.String type)
                +
                public java.lang.CharSequence token(java.lang.String type)
                Description copied from interface: Lexer
                -
                Recognizes if the last discovered tokens is a member of the specified type group.
                - This method should be used after a call to the Lexer.next() method.
                -
                +
                Recognizes if the last discovered token is a member of the specified type group.
                + This method should be used after a call to the Lexer.next() method.
                +
                For example:
                • if there are three types, "double", "integer" and "letters", the token "38.5" would match the type "double" as "38.5" and the type "integer" as "38", but not - the type "string".
                  + the type "string".
                  Then at position 0 of the token " 38.5 " (note the spaces before character '3' and after character '5'):
                  • the call token("double") will return "38.5"; @@ -303,7 +303,7 @@

                    token

                    • token

                      -
                      public java.lang.String token()
                      +
                      public java.lang.CharSequence token()
                      Description copied from interface: Lexer
                      Get the token that matches the default type of the matched types. Generally the default token type is the matched type witch was first added to the lexer rules. @@ -411,9 +411,9 @@

                      next

                      • input

                        -
                        public java.lang.String input()
                        +
                        public java.lang.CharSequence input()
                        Description copied from interface: Lexer
                        -
                        Get the input string setted by the Lexer.setInput(String) method.
                        +
                        Get the input CharSequence.
                        Specified by:
                        input in interface Lexer
                        diff --git a/docs/jointyc/analysis/lexer/StandardLexer.html b/docs/jointyc/analysis/lexer/StandardLexer.html index 3220ad9..a02318f 100644 --- a/docs/jointyc/analysis/lexer/StandardLexer.html +++ b/docs/jointyc/analysis/lexer/StandardLexer.html @@ -2,9 +2,9 @@ - + StandardLexer - + @@ -119,10 +119,10 @@

                        Class StandardLexer

                        Implements a basic editable lexer. This lexer skips all the tokens that are not matched by a rule. So it is necessary to define a rule for every relevant token. If some tokens must be recognized as erroneous, such as a special character, at least one rule must be defined to match them. - Usually, along with other token types of the lexicon, one another is defined to macth all the erroneous relevant characters.
                        -
                        - For instance, if only the white spaces must be skipped, it could be defined the following rule:
                        lexer.addType("erroneous", "[^\s]"); -
                        + Usually, along with other token types of the lexicon, one another is defined to macth all the erroneous relevant characters.
                        +
                        + For instance, if only the white spaces must be skipped, it could be defined the following rule:
                        lexer.addType("erroneous", "[^\s]"); +
                      Author:
                      Salvatore Giamp�
                      @@ -173,7 +173,7 @@

                      Method Summary

                      java.lang.String regex, java.lang.String description, boolean skip) -
                      Add a new token type.
                      +
                      Add a new token type, validating the regex and throwing a PatternSyntaxException in the case that the regex is not valid.
                      @@ -189,9 +189,9 @@

                      Method Summary

                      -java.lang.String +java.lang.CharSequence input() -
                      Get the input string setted by the Lexer.setInput(String) method.
                      +
                      Get the input CharSequence.
                      @@ -214,7 +214,7 @@

                      Method Summary

                      void -setInput(java.lang.String input) +setInput(java.lang.CharSequence input)
                      Sets the input string for this lexer
                      @@ -245,7 +245,7 @@

                      Method Summary

                      java.lang.String token(java.lang.String type) -
                      Recognizes if the last discovered tokens is a member of the specified type group.
                      +
                      Recognizes if the last discovered token is a member of the specified type group.
                      @@ -300,20 +300,23 @@

                      StandardLexer

                      Method Detail

                      - +
                      • setInput

                        -
                        public void setInput(java.lang.String input)
                        -
                        Description copied from interface: Lexer
                        +
                        public void setInput(java.lang.CharSequence input)
                        +              throws java.util.regex.PatternSyntaxException
                        +
                        Description copied from interface: Lexer
                        Sets the input string for this lexer
                        Specified by:
                        -
                        setInput in interface Lexer
                        +
                        setInput in interface Lexer
                        Parameters:
                        input - the string to lex
                        +
                        Throws:
                        +
                        java.util.regex.PatternSyntaxException
                      @@ -325,13 +328,13 @@

                      setInput

                      token

                      public final java.lang.String token(java.lang.String type)
                      Description copied from interface: Lexer
                      -
                      Recognizes if the last discovered tokens is a member of the specified type group.
                      - This method should be used after a call to the Lexer.next() method.
                      -
                      +
                      Recognizes if the last discovered token is a member of the specified type group.
                      + This method should be used after a call to the Lexer.next() method.
                      +
                      For example:
                      • if there are three types, "double", "integer" and "letters", the token "38.5" would match the type "double" as "38.5" and the type "integer" as "38", but not - the type "string".
                        + the type "string".
                        Then at position 0 of the token " 38.5 " (note the spaces before character '3' and after character '5'):
                        • the call token("double") will return "38.5"; @@ -478,9 +481,10 @@

                          addType

                          public void addType(java.lang.String type,
                                               java.lang.String regex,
                                               java.lang.String description,
                          -                    boolean skip)
                          + boolean skip) + throws java.util.regex.PatternSyntaxException
                          Description copied from interface: EditableLexer
                          -
                          Add a new token type.
                          +
                          Add a new token type, validating the regex and throwing a PatternSyntaxException in the case that the regex is not valid.
                          Specified by:
                          addType in interface EditableLexer
                          @@ -489,6 +493,8 @@

                          addType

                          regex - the regular expression that match the new type
                          description - a printable description for this type
                          skip - true if this token type must be skipped by the lexer
                          +
                          Throws:
                          +
                          java.util.regex.PatternSyntaxException - when the regex is not valid
                        @@ -513,9 +519,9 @@

                        resetTypes

                        • input

                          -
                          public java.lang.String input()
                          +
                          public java.lang.CharSequence input()
                          Description copied from interface: Lexer
                          -
                          Get the input string setted by the Lexer.setInput(String) method.
                          +
                          Get the input CharSequence.
                          Specified by:
                          input in interface Lexer
                          diff --git a/docs/jointyc/analysis/lexer/class-use/EditableLexer.html b/docs/jointyc/analysis/lexer/class-use/EditableLexer.html index 70a0c4a..39fe149 100644 --- a/docs/jointyc/analysis/lexer/class-use/EditableLexer.html +++ b/docs/jointyc/analysis/lexer/class-use/EditableLexer.html @@ -2,9 +2,9 @@ - + Uses of Interface jointyc.analysis.lexer.EditableLexer - + diff --git a/docs/jointyc/analysis/lexer/class-use/Lexer.html b/docs/jointyc/analysis/lexer/class-use/Lexer.html index df162ec..d3513f6 100644 --- a/docs/jointyc/analysis/lexer/class-use/Lexer.html +++ b/docs/jointyc/analysis/lexer/class-use/Lexer.html @@ -2,9 +2,9 @@ - + Uses of Interface jointyc.analysis.lexer.Lexer - + diff --git a/docs/jointyc/analysis/lexer/class-use/LexerWrapper.html b/docs/jointyc/analysis/lexer/class-use/LexerWrapper.html index 46f806d..9d84822 100644 --- a/docs/jointyc/analysis/lexer/class-use/LexerWrapper.html +++ b/docs/jointyc/analysis/lexer/class-use/LexerWrapper.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.lexer.LexerWrapper - + diff --git a/docs/jointyc/analysis/lexer/class-use/StandardLexer.html b/docs/jointyc/analysis/lexer/class-use/StandardLexer.html index 492eb1f..d863885 100644 --- a/docs/jointyc/analysis/lexer/class-use/StandardLexer.html +++ b/docs/jointyc/analysis/lexer/class-use/StandardLexer.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.lexer.StandardLexer - + diff --git a/docs/jointyc/analysis/lexer/package-frame.html b/docs/jointyc/analysis/lexer/package-frame.html index fb8f796..8929474 100644 --- a/docs/jointyc/analysis/lexer/package-frame.html +++ b/docs/jointyc/analysis/lexer/package-frame.html @@ -2,9 +2,9 @@ - + jointyc.analysis.lexer - + diff --git a/docs/jointyc/analysis/lexer/package-summary.html b/docs/jointyc/analysis/lexer/package-summary.html index 16fd72b..32f74e4 100644 --- a/docs/jointyc/analysis/lexer/package-summary.html +++ b/docs/jointyc/analysis/lexer/package-summary.html @@ -2,9 +2,9 @@ - + jointyc.analysis.lexer - + diff --git a/docs/jointyc/analysis/lexer/package-tree.html b/docs/jointyc/analysis/lexer/package-tree.html index 5f7519c..1748ad0 100644 --- a/docs/jointyc/analysis/lexer/package-tree.html +++ b/docs/jointyc/analysis/lexer/package-tree.html @@ -2,9 +2,9 @@ - + jointyc.analysis.lexer Class Hierarchy - + diff --git a/docs/jointyc/analysis/lexer/package-use.html b/docs/jointyc/analysis/lexer/package-use.html index 417a39f..114e009 100644 --- a/docs/jointyc/analysis/lexer/package-use.html +++ b/docs/jointyc/analysis/lexer/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.analysis.lexer - + diff --git a/docs/jointyc/analysis/package-frame.html b/docs/jointyc/analysis/package-frame.html index bb67d00..2082e28 100644 --- a/docs/jointyc/analysis/package-frame.html +++ b/docs/jointyc/analysis/package-frame.html @@ -2,9 +2,9 @@ - + jointyc.analysis - + diff --git a/docs/jointyc/analysis/package-summary.html b/docs/jointyc/analysis/package-summary.html index 84ff6fa..6a5dafe 100644 --- a/docs/jointyc/analysis/package-summary.html +++ b/docs/jointyc/analysis/package-summary.html @@ -2,9 +2,9 @@ - + jointyc.analysis - + diff --git a/docs/jointyc/analysis/package-tree.html b/docs/jointyc/analysis/package-tree.html index 2863be1..635d7b9 100644 --- a/docs/jointyc/analysis/package-tree.html +++ b/docs/jointyc/analysis/package-tree.html @@ -2,9 +2,9 @@ - + jointyc.analysis Class Hierarchy - + diff --git a/docs/jointyc/analysis/package-use.html b/docs/jointyc/analysis/package-use.html index dafeb2a..e236fed 100644 --- a/docs/jointyc/analysis/package-use.html +++ b/docs/jointyc/analysis/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.analysis - + diff --git a/docs/jointyc/analysis/parser/EditableParser.html b/docs/jointyc/analysis/parser/EditableParser.html index 9da21e6..3ea14bd 100644 --- a/docs/jointyc/analysis/parser/EditableParser.html +++ b/docs/jointyc/analysis/parser/EditableParser.html @@ -2,9 +2,9 @@ - + EditableParser - + @@ -270,20 +270,19 @@

                          addRule

                          java.lang.String... production) throws InfiniteRecursionException, InvalidRuleNameException -
                          Adds a new rule to this parser.
                          - The production parameter might contain, indifferently, terminal and non-terminal symbols.
                          - Terminal and non-terminal symbols are distinguished by adding the prefix specified by TERMINAL_PREFIX to the product name.
                          - (for example: TERMINAL_PREFIX + "double", specifies that the type "double" is terminal.
                          -
                          - A rule name must match the regex specified by RULE_PATTERN
                          +
                          Adds a new rule to this parser.
                          + The production parameter might contain, indifferently, terminal and non-terminal symbols.
                          + Terminal and non-terminal symbols are distinguished by adding the prefix specified by TERMINAL_PREFIX to the product name.
                          + (for example: TERMINAL_PREFIX + "double", specifies that the type "double" is terminal.
                          +
                          + A rule name must match the regex specified by RULE_PATTERN
                          Parameters:
                          -
                          tag - the tag associated to this rule
                          rule - the production head
                          production - the production tail
                          Throws:
                          -
                          InfiniteRecursionException - if the specified rule closes an infinite left recursion chain
                          - (e.g. A->Ba; B->Cb; C->Ac; the last rule will throw an InfiniteRecursionException)
                          +
                          InfiniteRecursionException - if the specified rule closes an infinite left recursion chain
                          + (e.g. A->Ba; B->Cb; C->A c; the last rule will throw an InfiniteRecursionException)
                          InvalidRuleNameException - if the rule name is not valid, according to the pattern RULE_PATTERN
                        • @@ -298,15 +297,14 @@

                          addRule

                          java.util.List<java.lang.String> production) throws InfiniteRecursionException, InvalidRuleNameException -
                          The same of addRule(String, String...), but accepting a list for production.
                          +
                          The same of addRule(String, String...), but accepting a list for production.
                          Parameters:
                          -
                          tag - the tag associated to this rule
                          rule - the production head
                          production - the production tail
                          Throws:
                          -
                          InfiniteRecursionException - if the specified rule closes an infinite recursion chain
                          - (e.g. A->Ba; B->Cb; C->Ac; the last rule will throw an InfiniteRecursionException)
                          +
                          InfiniteRecursionException - if the specified rule closes an infinite recursion chain
                          + (e.g. A->Ba; B->Cb; C->Ac; the last rule will throw an InfiniteRecursionException)
                          InvalidRuleNameException - if the rule name is not valid, according to the pattern RULE_PATTERN
                          @@ -318,8 +316,8 @@

                          addRule

                        • setAxiom

                          void setAxiom(java.lang.String axiom)
                          -
                          Sets the axiom of the grammar to the specified non-terminal symbol.
                          - In other words, sets the starting rule head for strings generations.
                          +
                          Sets the axiom of the grammar to the specified non-terminal symbol.
                          + In other words, sets the starting rule head for strings generations.
                          Parameters:
                          axiom - the starting non-terminal symbol.
                          diff --git a/docs/jointyc/analysis/parser/Parser.html b/docs/jointyc/analysis/parser/Parser.html index 265ca94..4ffae01 100644 --- a/docs/jointyc/analysis/parser/Parser.html +++ b/docs/jointyc/analysis/parser/Parser.html @@ -2,9 +2,9 @@ - + Parser - + @@ -236,7 +236,7 @@

                          parse

                          getRule

                          java.util.List<java.util.List<java.lang.String>> getRule(java.lang.String head)
                          Gets the productions associated to the specified rule head. - The returned production lists adhere to the logic of #addRule(String, String...), to distinguish terminal tokens from non-terminal ones.
                          + The returned production lists adhere to the logic of EditableParser.addRule(String, String...), to distinguish terminal tokens from non-terminal ones.
                      Parameters:
                      head - the head of the rule
                      @@ -265,7 +265,8 @@

                      ruleExists

                      Check the existence of at least a production rule for the specified non-terminal token.
                      Parameters:
                      -
                      token - the head of the productions rules to be checked. It is a non-terminal token.
                      +
                      head - the head of the productions rules to be checked. It is a non-terminal token.
                      +
                      production - the elements of the production body
                      Returns:
                      true if the specified non-terminal token produces something, false otherwise.
                      diff --git a/docs/jointyc/analysis/parser/ParserWrapper.html b/docs/jointyc/analysis/parser/ParserWrapper.html index f8cd3e5..b269481 100644 --- a/docs/jointyc/analysis/parser/ParserWrapper.html +++ b/docs/jointyc/analysis/parser/ParserWrapper.html @@ -2,9 +2,9 @@ - + ParserWrapper - + @@ -281,7 +281,7 @@

                      getRule

                      public java.util.List<java.util.List<java.lang.String>> getRule(java.lang.String head)
                      Description copied from interface: Parser
                      Gets the productions associated to the specified rule head. - The returned production lists adhere to the logic of #addRule(String, String...), to distinguish terminal tokens from non-terminal ones.
                      + The returned production lists adhere to the logic of EditableParser.addRule(String, String...), to distinguish terminal tokens from non-terminal ones.
                      Specified by:
                      getRule in interface Parser
                      @@ -305,6 +305,9 @@

                      ruleExists

                      Specified by:
                      ruleExists in interface Parser
                      +
                      Parameters:
                      +
                      head - the head of the productions rules to be checked. It is a non-terminal token.
                      +
                      production - the elements of the production body
                      Returns:
                      true if the specified non-terminal token produces something, false otherwise.
                      diff --git a/docs/jointyc/analysis/parser/StandardParser.html b/docs/jointyc/analysis/parser/StandardParser.html index 193dc75..8bf3d0b 100644 --- a/docs/jointyc/analysis/parser/StandardParser.html +++ b/docs/jointyc/analysis/parser/StandardParser.html @@ -2,9 +2,9 @@ - + StandardParser - + @@ -365,12 +365,12 @@

                      addRule

                      throws InfiniteRecursionException, InvalidRuleNameException
                      Description copied from interface: EditableParser
                      -
                      Adds a new rule to this parser.
                      - The production parameter might contain, indifferently, terminal and non-terminal symbols.
                      - Terminal and non-terminal symbols are distinguished by adding the prefix specified by EditableParser.TERMINAL_PREFIX to the product name.
                      - (for example: EditableParser.TERMINAL_PREFIX + "double", specifies that the type "double" is terminal.
                      -
                      - A rule name must match the regex specified by EditableParser.RULE_PATTERN
                      +
                      Adds a new rule to this parser.
                      + The production parameter might contain, indifferently, terminal and non-terminal symbols.
                      + Terminal and non-terminal symbols are distinguished by adding the prefix specified by EditableParser.TERMINAL_PREFIX to the product name.
                      + (for example: EditableParser.TERMINAL_PREFIX + "double", specifies that the type "double" is terminal.
                      +
                      + A rule name must match the regex specified by EditableParser.RULE_PATTERN
                      Specified by:
                      addRule in interface EditableParser
                      @@ -378,8 +378,8 @@

                      addRule

                      head - the production head
                      production - the production tail
                      Throws:
                      -
                      InfiniteRecursionException - if the specified rule closes an infinite left recursion chain
                      - (e.g. A->Ba; B->Cb; C->Ac; the last rule will throw an InfiniteRecursionException)
                      +
                      InfiniteRecursionException - if the specified rule closes an infinite left recursion chain
                      + (e.g. A->Ba; B->Cb; C->A c; the last rule will throw an InfiniteRecursionException)
                      InvalidRuleNameException - if the rule name is not valid, according to the pattern EditableParser.RULE_PATTERN
                    • @@ -395,7 +395,7 @@

                      addRule

                      throws InfiniteRecursionException, InvalidRuleNameException
                      Description copied from interface: EditableParser
                      -
                      The same of EditableParser.addRule(String, String...), but accepting a list for production.
                      +
                      The same of EditableParser.addRule(String, String...), but accepting a list for production.
                      Specified by:
                      addRule in interface EditableParser
                      @@ -403,8 +403,8 @@

                      addRule

                      head - the production head
                      production - the production tail
                      Throws:
                      -
                      InfiniteRecursionException - if the specified rule closes an infinite recursion chain
                      - (e.g. A->Ba; B->Cb; C->Ac; the last rule will throw an InfiniteRecursionException)
                      +
                      InfiniteRecursionException - if the specified rule closes an infinite recursion chain
                      + (e.g. A->Ba; B->Cb; C->Ac; the last rule will throw an InfiniteRecursionException)
                      InvalidRuleNameException - if the rule name is not valid, according to the pattern EditableParser.RULE_PATTERN
                      @@ -417,8 +417,8 @@

                      addRule

                      setAxiom

                      public void setAxiom(java.lang.String axiom)
                      Description copied from interface: EditableParser
                      -
                      Sets the axiom of the grammar to the specified non-terminal symbol.
                      - In other words, sets the starting rule head for strings generations.
                      +
                      Sets the axiom of the grammar to the specified non-terminal symbol.
                      + In other words, sets the starting rule head for strings generations.
                      Specified by:
                      setAxiom in interface EditableParser
                      @@ -456,7 +456,7 @@

                      getRule

                      public java.util.List<java.util.List<java.lang.String>> getRule(java.lang.String head)
                      Description copied from interface: Parser
                      Gets the productions associated to the specified rule head. - The returned production lists adhere to the logic of #addRule(String, String...), to distinguish terminal tokens from non-terminal ones.
                      + The returned production lists adhere to the logic of EditableParser.addRule(String, String...), to distinguish terminal tokens from non-terminal ones.
                Specified by:
                getRule in interface Parser
                @@ -480,6 +480,9 @@

                ruleExists

                Specified by:
                ruleExists in interface Parser
                +
                Parameters:
                +
                head - the head of the productions rules to be checked. It is a non-terminal token.
                +
                production - the elements of the production body
                Returns:
                true if the specified non-terminal token produces something, false otherwise.
                diff --git a/docs/jointyc/analysis/parser/SyntaxIterator.html b/docs/jointyc/analysis/parser/SyntaxIterator.html index 6bbb445..c44157a 100644 --- a/docs/jointyc/analysis/parser/SyntaxIterator.html +++ b/docs/jointyc/analysis/parser/SyntaxIterator.html @@ -2,9 +2,9 @@ - + SyntaxIterator - + @@ -116,7 +116,7 @@

                Class SyntaxIterator

                public class SyntaxIterator
                 extends java.lang.Object
                 implements java.util.Iterator<SyntaxTree>
                -
                Ddefines a simple, double direction, iterator over the sons of syntax node.

                +
                Defines a simple, double direction, iterator over the sons of syntax node.

                It does not impement the remove() operation. Trying the use of this, will throw an IllegalStateException.
                Author:
                diff --git a/docs/jointyc/analysis/parser/SyntaxTree.html b/docs/jointyc/analysis/parser/SyntaxTree.html index da036d1..ee498b7 100644 --- a/docs/jointyc/analysis/parser/SyntaxTree.html +++ b/docs/jointyc/analysis/parser/SyntaxTree.html @@ -2,9 +2,9 @@ - + SyntaxTree - + @@ -172,7 +172,7 @@

                Method Summary

                -java.lang.String +java.lang.CharSequence source()
                Gets the source string the token was extracted from.
                @@ -190,7 +190,7 @@

                Method Summary

                -java.lang.String +java.lang.CharSequence token()
                The characters string extracted by the source string for this token.
                @@ -336,7 +336,7 @@

                end

                • token

                  -
                  java.lang.String token()
                  +
                  java.lang.CharSequence token()
                  The characters string extracted by the source string for this token.
                  Returns:
                  @@ -350,7 +350,7 @@

                  token

                  • source

                    -
                    java.lang.String source()
                    +
                    java.lang.CharSequence source()
                    Gets the source string the token was extracted from.
                    Returns:
                    @@ -382,43 +382,43 @@

                    query

                    java.lang.String... production)
                    Queries for a rule start part. Checks if this tree has a certain type, and then proceeds testing the types of the first k children, where k is the - size of the production array specified.
                    -
                    - Terminal and non-terminal symbols are distinguished in the production, by the prefix specified by EditableParser.TERMINAL_PREFIX.
                    - See the logic of EditableParser.addRule(String, String...) for more information.
                    -
                    - If the specified production length is exactly 1 and its first element (production[0]) is equal to "#", then returns true if this tree has no next, false otherwise.
                    -
                    - If the specified production length is exactly 1 and its first element (production[0]) is equal to "!#", then returns true if this tree has some next, false otherwise.
                    -
                    -
                    - Example: (assume the character # is the empty string)
                    + size of the production array specified.
                    +
                    + Terminal and non-terminal symbols are distinguished in the production, by the prefix specified by EditableParser.TERMINAL_PREFIX.
                    + See the logic of EditableParser.addRule(String, String...) for more information.
                    +
                    + If the specified production length is exactly 1 and its first element (production[0]) is equal to "#", then returns true if this tree has no next, false otherwise.
                    +
                    + If the specified production length is exactly 1 and its first element (production[0]) is equal to "!#", then returns true if this tree has some next, false otherwise.
                    +
                    +
                    + Example: (assume the character # is the empty string)
                    - Consider the following production rules:
                    - a -> b c d | x y z | x f g
                    - b -> p q | #
                    - And consider the following declaration:
                    - SyntaxTree tree;
                    -
                    - The following are true:
                    + Consider the following production rules:
                    + a -> b c d | x y z | x f g
                    + b -> p q | #
                    + And consider the following declaration:
                    + SyntaxTree tree;
                    +
                    + The following are true:
                      -
                    • tree.query("a", "x") will return true if tree is of type "a" and its first next is of type "x".
                      - It will return true if the matching rule is "a -> x y z" or "a -> x f g" +
                    • tree.query("a", "x") will return true if tree is of type "a" and its first next is of type "x".
                      + It will return true if the matching rule is "a -> x y z" or "a -> x f g" -
                    • tree.query("a", "x", "y") will return true if tree is of type "a" and its first next is of type "x" and its second next is of type "y".
                      - It will return true if and only if the rule "a -> x y z" matched. +
                    • tree.query("a", "x", "y") will return true if tree is of type "a" and its first next is of type "x" and its second next is of type "y".
                      + It will return true if and only if the rule "a -> x y z" matched. -
                    • tree.query("b", "#") will return true if tree is of type "b" and it has no next.
                      - It will return true if and only if the rule "b -> #" matched. +
                    • tree.query("b", "#") will return true if tree is of type "b" and it has no next.
                      + It will return true if and only if the rule "b -> #" matched. -
                    • tree.query("a", "#") will return true if tree is of type "a" and it has no next.
                      - It will never return true, because the rule "a -> #" is not defined. +
                    • tree.query("a", "#") will return true if tree is of type "a" and it has no next.
                      + It will never return true, because the rule "a -> #" is not defined. -
                    • tree.query("b", "!#") will return true if tree is of type "b" and it has some next.
                      - It will return true if and only if the rule "b -> p q" matched. +
                    • tree.query("b", "!#") will return true if tree is of type "b" and it has some next.
                      + It will return true if and only if the rule "b -> p q" matched. -
                    • tree.query("a", "!#") will return true if tree is of type "a" and it has some next.
                      - It will always return true, because the rule "a -> #" is not defined. +
                    • tree.query("a", "!#") will return true if tree is of type "a" and it has some next.
                      + It will always return true, because the rule "a -> #" is not defined.
                    Parameters:
                    diff --git a/docs/jointyc/analysis/parser/class-use/EditableParser.html b/docs/jointyc/analysis/parser/class-use/EditableParser.html index 7e340e2..70fbd05 100644 --- a/docs/jointyc/analysis/parser/class-use/EditableParser.html +++ b/docs/jointyc/analysis/parser/class-use/EditableParser.html @@ -2,9 +2,9 @@ - + Uses of Interface jointyc.analysis.parser.EditableParser - + diff --git a/docs/jointyc/analysis/parser/class-use/Parser.html b/docs/jointyc/analysis/parser/class-use/Parser.html index e464f9f..fc419bb 100644 --- a/docs/jointyc/analysis/parser/class-use/Parser.html +++ b/docs/jointyc/analysis/parser/class-use/Parser.html @@ -2,9 +2,9 @@ - + Uses of Interface jointyc.analysis.parser.Parser - + diff --git a/docs/jointyc/analysis/parser/class-use/ParserWrapper.html b/docs/jointyc/analysis/parser/class-use/ParserWrapper.html index 544cb6e..f7ff3c3 100644 --- a/docs/jointyc/analysis/parser/class-use/ParserWrapper.html +++ b/docs/jointyc/analysis/parser/class-use/ParserWrapper.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.parser.ParserWrapper - + diff --git a/docs/jointyc/analysis/parser/class-use/StandardParser.html b/docs/jointyc/analysis/parser/class-use/StandardParser.html index 9c114c0..65fdd2e 100644 --- a/docs/jointyc/analysis/parser/class-use/StandardParser.html +++ b/docs/jointyc/analysis/parser/class-use/StandardParser.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.parser.StandardParser - + diff --git a/docs/jointyc/analysis/parser/class-use/SyntaxIterator.html b/docs/jointyc/analysis/parser/class-use/SyntaxIterator.html index 21d2ca2..7fc591c 100644 --- a/docs/jointyc/analysis/parser/class-use/SyntaxIterator.html +++ b/docs/jointyc/analysis/parser/class-use/SyntaxIterator.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.parser.SyntaxIterator - + diff --git a/docs/jointyc/analysis/parser/class-use/SyntaxTree.html b/docs/jointyc/analysis/parser/class-use/SyntaxTree.html index 2599db6..5447327 100644 --- a/docs/jointyc/analysis/parser/class-use/SyntaxTree.html +++ b/docs/jointyc/analysis/parser/class-use/SyntaxTree.html @@ -2,9 +2,9 @@ - + Uses of Interface jointyc.analysis.parser.SyntaxTree - + @@ -186,7 +186,9 @@

                    Uses of SemanticException(java.lang.Throwable supplement, - SyntaxTree tree)  + SyntaxTree tree) + + SemanticException(java.lang.Throwable supplement, diff --git a/docs/jointyc/analysis/parser/exception/InfiniteRecursionException.html b/docs/jointyc/analysis/parser/exception/InfiniteRecursionException.html index 66f481d..774f070 100644 --- a/docs/jointyc/analysis/parser/exception/InfiniteRecursionException.html +++ b/docs/jointyc/analysis/parser/exception/InfiniteRecursionException.html @@ -2,9 +2,9 @@ - + InfiniteRecursionException - + diff --git a/docs/jointyc/analysis/parser/exception/InvalidRuleNameException.html b/docs/jointyc/analysis/parser/exception/InvalidRuleNameException.html index 9c9ab99..7f71b07 100644 --- a/docs/jointyc/analysis/parser/exception/InvalidRuleNameException.html +++ b/docs/jointyc/analysis/parser/exception/InvalidRuleNameException.html @@ -2,9 +2,9 @@ - + InvalidRuleNameException - + diff --git a/docs/jointyc/analysis/parser/exception/UnexpectedSymbolException.ExpectedTerminal.html b/docs/jointyc/analysis/parser/exception/UnexpectedSymbolException.ExpectedTerminal.html index 67648a8..8d3cb08 100644 --- a/docs/jointyc/analysis/parser/exception/UnexpectedSymbolException.ExpectedTerminal.html +++ b/docs/jointyc/analysis/parser/exception/UnexpectedSymbolException.ExpectedTerminal.html @@ -2,9 +2,9 @@ - + UnexpectedSymbolException.ExpectedTerminal - + @@ -115,8 +115,8 @@

                    Class
                    public static class UnexpectedSymbolException.ExpectedTerminal
                     extends java.lang.Object
                    -
                    Represents an expected terminal token.
                    - It stores some information about the expected token:
                    +
                    Represents an expected terminal token.
                    + It stores some information about the expected token:
                    - the position, in terms of characters from position 0, which equals the unexpected symbol's position; - a description of the expected terminal token (e.g. "if construct" for the token "if"). - the type of the expected token.
                    diff --git a/docs/jointyc/analysis/parser/exception/UnexpectedSymbolException.html b/docs/jointyc/analysis/parser/exception/UnexpectedSymbolException.html index 9f79d64..8989198 100644 --- a/docs/jointyc/analysis/parser/exception/UnexpectedSymbolException.html +++ b/docs/jointyc/analysis/parser/exception/UnexpectedSymbolException.html @@ -2,9 +2,9 @@ - + UnexpectedSymbolException - + @@ -125,13 +125,13 @@

                    Class UnexpectedSymbol
                    public class UnexpectedSymbolException
                     extends java.lang.Exception
                    -
                    Thrown when a parser has found an unexpected symbol.
                    - This exception stores some other information about the event:
                    - - the position, in terms of number of characters from position 0, of the unexpected symbol;
                    - - the position, in terms of line and column from position 0, of the unexpected symbol;
                    - - the string representation of the unexpected symbol;
                    - - the source string to be parsed;
                    - - the set of expected terminal tokens, each represented by an object of class UnexpectedSymbolException.ExpectedTerminal.
                    +
                    Thrown when a parser has found an unexpected symbol.
                    + This exception stores some other information about the event:
                    + - the position, in terms of number of characters from position 0, of the unexpected symbol;
                    + - the position, in terms of line and column from position 0, of the unexpected symbol;
                    + - the string representation of the unexpected symbol;
                    + - the source string to be parsed;
                    + - the set of expected terminal tokens, each represented by an object of class UnexpectedSymbolException.ExpectedTerminal.
                    Author:
                    Salvatore Giamp�
                    @@ -202,13 +202,13 @@

                    Field Summary

                    -java.lang.String +java.lang.CharSequence source
                    The source string.
                    -java.lang.String +java.lang.CharSequence unexpected
                    The unexpected token.
                    @@ -228,10 +228,10 @@

                    Constructor Summary

                    Constructor and Description -UnexpectedSymbolException(java.util.Set<UnexpectedSymbolException.ExpectedTerminal> expected, - java.lang.String found, +UnexpectedSymbolException(java.util.Set<UnexpectedSymbolException.ExpectedTerminal> expected, + java.lang.CharSequence found, int position, - java.lang.String source) + java.lang.CharSequence source)
                    Construct the exception.
                    @@ -299,7 +299,7 @@

                    expected

                    • source

                      -
                      public final java.lang.String source
                      +
                      public final java.lang.CharSequence source
                      The source string.
                    @@ -309,7 +309,7 @@

                    source

                    • unexpected

                      -
                      public final java.lang.String unexpected
                      +
                      public final java.lang.CharSequence unexpected
                      The unexpected token.
                    @@ -351,16 +351,16 @@

                    position

                    Constructor Detail

                    - +
                    • UnexpectedSymbolException

                      public UnexpectedSymbolException(java.util.Set<UnexpectedSymbolException.ExpectedTerminal> expected,
                      -                                 java.lang.String found,
                      +                                 java.lang.CharSequence found,
                                                        int position,
                      -                                 java.lang.String source)
                      + java.lang.CharSequence source)
                      Construct the exception. The position of the unexpected symbol, in terms of lines and columns, will be automatically computed using the passed position in characters and the source string.
                      diff --git a/docs/jointyc/analysis/parser/exception/class-use/InfiniteRecursionException.html b/docs/jointyc/analysis/parser/exception/class-use/InfiniteRecursionException.html index 3107a66..ae30701 100644 --- a/docs/jointyc/analysis/parser/exception/class-use/InfiniteRecursionException.html +++ b/docs/jointyc/analysis/parser/exception/class-use/InfiniteRecursionException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.parser.exception.InfiniteRecursionException - + diff --git a/docs/jointyc/analysis/parser/exception/class-use/InvalidRuleNameException.html b/docs/jointyc/analysis/parser/exception/class-use/InvalidRuleNameException.html index 8eaeac6..c613d30 100644 --- a/docs/jointyc/analysis/parser/exception/class-use/InvalidRuleNameException.html +++ b/docs/jointyc/analysis/parser/exception/class-use/InvalidRuleNameException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.parser.exception.InvalidRuleNameException - + diff --git a/docs/jointyc/analysis/parser/exception/class-use/UnexpectedSymbolException.ExpectedTerminal.html b/docs/jointyc/analysis/parser/exception/class-use/UnexpectedSymbolException.ExpectedTerminal.html index f8f9537..41ea968 100644 --- a/docs/jointyc/analysis/parser/exception/class-use/UnexpectedSymbolException.ExpectedTerminal.html +++ b/docs/jointyc/analysis/parser/exception/class-use/UnexpectedSymbolException.ExpectedTerminal.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.parser.exception.UnexpectedSymbolException.ExpectedTerminal - + @@ -117,10 +117,10 @@

                      Uses of -UnexpectedSymbolException(java.util.Set<UnexpectedSymbolException.ExpectedTerminal> expected, - java.lang.String found, +UnexpectedSymbolException(java.util.Set<UnexpectedSymbolException.ExpectedTerminal> expected, + java.lang.CharSequence found, int position, - java.lang.String source) + java.lang.CharSequence source)
                      Construct the exception.
                      diff --git a/docs/jointyc/analysis/parser/exception/class-use/UnexpectedSymbolException.html b/docs/jointyc/analysis/parser/exception/class-use/UnexpectedSymbolException.html index ae9856a..0102ba8 100644 --- a/docs/jointyc/analysis/parser/exception/class-use/UnexpectedSymbolException.html +++ b/docs/jointyc/analysis/parser/exception/class-use/UnexpectedSymbolException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.parser.exception.UnexpectedSymbolException - + @@ -112,7 +112,11 @@

                      Uses of java.lang.Object -StandardCompiler.compile(java.lang.String source)  +StandardCompiler.compile(java.lang.CharSequence source)  + + +java.lang.Object +StandardCompiler.compile(java.io.File file)  @@ -172,7 +176,7 @@

                      Uses of StandardCompiler -JdlCompiler.compileSource(java.lang.String source, +JdlCompiler.compileSource(java.lang.CharSequence source, Interpreter interpreter)
                      Compile a JDL string and creates a StandardCompiler with the specified interpreter
                      diff --git a/docs/jointyc/analysis/parser/exception/package-frame.html b/docs/jointyc/analysis/parser/exception/package-frame.html index 76e2e42..3c15768 100644 --- a/docs/jointyc/analysis/parser/exception/package-frame.html +++ b/docs/jointyc/analysis/parser/exception/package-frame.html @@ -2,9 +2,9 @@ - + jointyc.analysis.parser.exception - + diff --git a/docs/jointyc/analysis/parser/exception/package-summary.html b/docs/jointyc/analysis/parser/exception/package-summary.html index 4d151d4..ef88031 100644 --- a/docs/jointyc/analysis/parser/exception/package-summary.html +++ b/docs/jointyc/analysis/parser/exception/package-summary.html @@ -2,9 +2,9 @@ - + jointyc.analysis.parser.exception - + diff --git a/docs/jointyc/analysis/parser/exception/package-tree.html b/docs/jointyc/analysis/parser/exception/package-tree.html index e2ee7f9..d39cc68 100644 --- a/docs/jointyc/analysis/parser/exception/package-tree.html +++ b/docs/jointyc/analysis/parser/exception/package-tree.html @@ -2,9 +2,9 @@ - + jointyc.analysis.parser.exception Class Hierarchy - + diff --git a/docs/jointyc/analysis/parser/exception/package-use.html b/docs/jointyc/analysis/parser/exception/package-use.html index 0ff9be8..8f7cc5a 100644 --- a/docs/jointyc/analysis/parser/exception/package-use.html +++ b/docs/jointyc/analysis/parser/exception/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.analysis.parser.exception - + diff --git a/docs/jointyc/analysis/parser/package-frame.html b/docs/jointyc/analysis/parser/package-frame.html index 5b22609..89d8a6e 100644 --- a/docs/jointyc/analysis/parser/package-frame.html +++ b/docs/jointyc/analysis/parser/package-frame.html @@ -2,9 +2,9 @@ - + jointyc.analysis.parser - + diff --git a/docs/jointyc/analysis/parser/package-summary.html b/docs/jointyc/analysis/parser/package-summary.html index 0a0e345..98b16d1 100644 --- a/docs/jointyc/analysis/parser/package-summary.html +++ b/docs/jointyc/analysis/parser/package-summary.html @@ -2,9 +2,9 @@ - + jointyc.analysis.parser - + @@ -127,7 +127,7 @@

                      Package jointyc.analysis.parser

                      SyntaxIterator -
                      Ddefines a simple, double direction, iterator over the sons of syntax node.
                      +
                      Defines a simple, double direction, iterator over the sons of syntax node.
                      diff --git a/docs/jointyc/analysis/parser/package-tree.html b/docs/jointyc/analysis/parser/package-tree.html index bb2fb1f..97249c4 100644 --- a/docs/jointyc/analysis/parser/package-tree.html +++ b/docs/jointyc/analysis/parser/package-tree.html @@ -2,9 +2,9 @@ - + jointyc.analysis.parser Class Hierarchy - + diff --git a/docs/jointyc/analysis/parser/package-use.html b/docs/jointyc/analysis/parser/package-use.html index c04ef3b..262cd1a 100644 --- a/docs/jointyc/analysis/parser/package-use.html +++ b/docs/jointyc/analysis/parser/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.analysis.parser - + @@ -139,7 +139,7 @@

                      Uses of Packag SyntaxIterator -
                      Ddefines a simple, double direction, iterator over the sons of syntax node.
                      +
                      Defines a simple, double direction, iterator over the sons of syntax node.
                      diff --git a/docs/jointyc/analysis/semantic/Interpreter.html b/docs/jointyc/analysis/semantic/Interpreter.html index 4160875..6d8015a 100644 --- a/docs/jointyc/analysis/semantic/Interpreter.html +++ b/docs/jointyc/analysis/semantic/Interpreter.html @@ -2,9 +2,9 @@ - + Interpreter - + @@ -102,18 +102,18 @@

                      Interface Interpreter

                      of some semantic result.The semantic actions are provided as custom methods of the implementor without needing to override any method of this interface. Altought the methods that provide semantic actions must be annotated. Each - annotated method can be exposed with any access modifier.
                      -
                      + annotated method can be exposed with any access modifier.
                      +
                      Terminal tokens' semantic interpreter methods must be annotated with the TerminalToken annotation and must return the object biult by semantic operations. A terminal interpreter method, can take no arguments or at most one argument of type SyntaxTree. Through this single argument, the method can access to the token string, and others token properties(see SyntaxTree t get more information about). The method can return - anything that represents the token semantic result, or void.
                      -
                      + anything that represents the token semantic result, or void.
                      +
                      A non-terminal token semantic interpreter method must be annotated with the - NonTerminalToken annotation. The method can take many arguments as it + NonTerminalToken annotation. The method can take many arguments as it needs and corresponding to the types of the tokens in the production of the rule which is annotated with. The method can return anything that represents the token semantic result, or void.

                    diff --git a/docs/jointyc/analysis/semantic/SemanticAnalyzer.ControlCode.html b/docs/jointyc/analysis/semantic/SemanticAnalyzer.ControlCode.html index 0e2d802..6cf9597 100644 --- a/docs/jointyc/analysis/semantic/SemanticAnalyzer.ControlCode.html +++ b/docs/jointyc/analysis/semantic/SemanticAnalyzer.ControlCode.html @@ -2,9 +2,9 @@ - + SemanticAnalyzer.ControlCode - + diff --git a/docs/jointyc/analysis/semantic/SemanticAnalyzer.html b/docs/jointyc/analysis/semantic/SemanticAnalyzer.html index 4d2e848..783125d 100644 --- a/docs/jointyc/analysis/semantic/SemanticAnalyzer.html +++ b/docs/jointyc/analysis/semantic/SemanticAnalyzer.html @@ -2,9 +2,9 @@ - + SemanticAnalyzer - + diff --git a/docs/jointyc/analysis/semantic/annotation/Language.html b/docs/jointyc/analysis/semantic/annotation/Language.html new file mode 100644 index 0000000..ad59aff --- /dev/null +++ b/docs/jointyc/analysis/semantic/annotation/Language.html @@ -0,0 +1,233 @@ + + + + + +Language + + + + + + + + + + + + +
                    +
                    jointyc.analysis.semantic.annotation
                    +

                    Annotation Type Language

                    +
                    +
                    +
                    +
                      +
                    • +
                      +
                      +
                      @Documented
                      + @Retention(value=RUNTIME)
                      + @Target(value=TYPE)
                      +public @interface Language
                      +
                      Annotate an Interpreter subclass to be bound to a language.

                      + Example:

                      + + @Language("myLanguage")
                      + public class MyLanguageInterpreter implements Interpreter{

                      +      @TerminalToken("myToken")
                      +      // equal to @TerminalToken("myLanguage.myToken")
                      +      private void myToken(){ ... }

                      +      ...
                      + } //MyLanguageInterpreter
                      +
                      +
                      +
                      Author:
                      +
                      Salvatore Giampa'
                      +
                      +
                    • +
                    +
                    +
                    +
                      +
                    • + +
                        +
                      • + + +

                        Required Element Summary

                        + + + + + + + + + + +
                        Required Elements 
                        Modifier and TypeRequired Element and Description
                        java.lang.Stringvalue 
                        +
                      • +
                      +
                    • +
                    +
                    +
                    +
                      +
                    • + +
                        +
                      • + + +

                        Element Detail

                        + + + +
                          +
                        • +

                          value

                          +
                          public abstract java.lang.String value
                          +
                          +
                          Returns:
                          +
                          The lexicon token type that must be associated to the annotated interpreter method
                          +
                          +
                        • +
                        +
                      • +
                      +
                    • +
                    +
                    +
                    + + + + + + + diff --git a/docs/jointyc/analysis/semantic/annotation/NoBufferClear.html b/docs/jointyc/analysis/semantic/annotation/NoBufferClear.html index 73b95d2..7c0de1a 100644 --- a/docs/jointyc/analysis/semantic/annotation/NoBufferClear.html +++ b/docs/jointyc/analysis/semantic/annotation/NoBufferClear.html @@ -2,9 +2,9 @@ - + NoBufferClear - + @@ -43,7 +43,7 @@

                diff --git a/docs/jointyc/analysis/semantic/annotation/package-use.html b/docs/jointyc/analysis/semantic/annotation/package-use.html index 1fd66f1..4770ff1 100644 --- a/docs/jointyc/analysis/semantic/annotation/package-use.html +++ b/docs/jointyc/analysis/semantic/annotation/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.analysis.semantic.annotation - + diff --git a/docs/jointyc/analysis/semantic/class-use/Interpreter.html b/docs/jointyc/analysis/semantic/class-use/Interpreter.html index 4a5c0a3..f301d59 100644 --- a/docs/jointyc/analysis/semantic/class-use/Interpreter.html +++ b/docs/jointyc/analysis/semantic/class-use/Interpreter.html @@ -2,9 +2,9 @@ - + Uses of Interface jointyc.analysis.semantic.Interpreter - + @@ -175,7 +175,7 @@

                Uses of StandardCompiler -JdlCompiler.compileSource(java.lang.String source, +JdlCompiler.compileSource(java.lang.CharSequence source, Interpreter interpreter)
                Compile a JDL string and creates a StandardCompiler with the specified interpreter
                diff --git a/docs/jointyc/analysis/semantic/class-use/SemanticAnalyzer.ControlCode.html b/docs/jointyc/analysis/semantic/class-use/SemanticAnalyzer.ControlCode.html index 52919be..149e175 100644 --- a/docs/jointyc/analysis/semantic/class-use/SemanticAnalyzer.ControlCode.html +++ b/docs/jointyc/analysis/semantic/class-use/SemanticAnalyzer.ControlCode.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.SemanticAnalyzer.ControlCode - + diff --git a/docs/jointyc/analysis/semantic/class-use/SemanticAnalyzer.html b/docs/jointyc/analysis/semantic/class-use/SemanticAnalyzer.html index febefc4..d804580 100644 --- a/docs/jointyc/analysis/semantic/class-use/SemanticAnalyzer.html +++ b/docs/jointyc/analysis/semantic/class-use/SemanticAnalyzer.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.SemanticAnalyzer - + diff --git a/docs/jointyc/analysis/semantic/exception/AnnotationException.html b/docs/jointyc/analysis/semantic/exception/AnnotationException.html index d038fd1..6f20e27 100644 --- a/docs/jointyc/analysis/semantic/exception/AnnotationException.html +++ b/docs/jointyc/analysis/semantic/exception/AnnotationException.html @@ -2,9 +2,9 @@ - + AnnotationException - + diff --git a/docs/jointyc/analysis/semantic/exception/AxiomBufferClearException.html b/docs/jointyc/analysis/semantic/exception/AxiomBufferClearException.html index e1e1dac..437409c 100644 --- a/docs/jointyc/analysis/semantic/exception/AxiomBufferClearException.html +++ b/docs/jointyc/analysis/semantic/exception/AxiomBufferClearException.html @@ -2,9 +2,9 @@ - + AxiomBufferClearException - + diff --git a/docs/jointyc/analysis/semantic/exception/MutuallyExclusiveInterpretationsException.html b/docs/jointyc/analysis/semantic/exception/MutuallyExclusiveInterpretationsException.html index 934323c..f7b5e54 100644 --- a/docs/jointyc/analysis/semantic/exception/MutuallyExclusiveInterpretationsException.html +++ b/docs/jointyc/analysis/semantic/exception/MutuallyExclusiveInterpretationsException.html @@ -2,9 +2,9 @@ - + MutuallyExclusiveInterpretationsException - + diff --git a/docs/jointyc/analysis/semantic/exception/NonTerminalReplicationException.html b/docs/jointyc/analysis/semantic/exception/NonTerminalReplicationException.html index 886311c..96479bc 100644 --- a/docs/jointyc/analysis/semantic/exception/NonTerminalReplicationException.html +++ b/docs/jointyc/analysis/semantic/exception/NonTerminalReplicationException.html @@ -2,9 +2,9 @@ - + NonTerminalReplicationException - + diff --git a/docs/jointyc/analysis/semantic/exception/SemanticException.html b/docs/jointyc/analysis/semantic/exception/SemanticException.html index 1336b18..b0d1e4e 100644 --- a/docs/jointyc/analysis/semantic/exception/SemanticException.html +++ b/docs/jointyc/analysis/semantic/exception/SemanticException.html @@ -2,9 +2,9 @@ - + SemanticException - + @@ -163,7 +163,7 @@

                Field Summary

                endLine  -java.lang.String +java.lang.CharSequence source  @@ -183,11 +183,11 @@

                Field Summary

                supplement  -java.lang.String +java.lang.CharSequence tag  -java.lang.String +java.lang.CharSequence token  @@ -206,7 +206,9 @@

                Constructor Summary

                SemanticException(java.lang.Throwable supplement, - SyntaxTree tree)  + SyntaxTree tree)
                + + SemanticException(java.lang.Throwable supplement, @@ -290,7 +292,7 @@

                supplement

                • token

                  -
                  public final java.lang.String token
                  +
                  public final java.lang.CharSequence token
                @@ -299,7 +301,7 @@

                token

                • source

                  -
                  public final java.lang.String source
                  +
                  public final java.lang.CharSequence source
                @@ -308,7 +310,7 @@

                source

                • tag

                  -
                  public final java.lang.String tag
                  +
                  public final java.lang.CharSequence tag
                @@ -385,7 +387,6 @@

                SemanticException

                Creates a new SemanticException
                Parameters:
                -
                message - a string message printed with the stack trace
                supplement - a supplementary object, containing more specific information about the error
                tree - the syntax tree node in which the error occurs
                tag - a tag associated with the exception, usually the name of compiler class, the name of the compiled language or @@ -402,6 +403,12 @@

                SemanticException

                SemanticException

                public SemanticException(java.lang.Throwable supplement,
                                          SyntaxTree tree)
                + +
                +
                Parameters:
                +
                supplement - a supplementary object, containing more specific information about the error
                +
                tree - the syntax tree node in which the error occurs
                +

            • diff --git a/docs/jointyc/analysis/semantic/exception/TerminalReplicationException.html b/docs/jointyc/analysis/semantic/exception/TerminalReplicationException.html index fe54f4a..6623757 100644 --- a/docs/jointyc/analysis/semantic/exception/TerminalReplicationException.html +++ b/docs/jointyc/analysis/semantic/exception/TerminalReplicationException.html @@ -2,9 +2,9 @@ - + TerminalReplicationException - + diff --git a/docs/jointyc/analysis/semantic/exception/UnknownParameterException.html b/docs/jointyc/analysis/semantic/exception/UnknownParameterException.html index 81ec68d..2f48c3c 100644 --- a/docs/jointyc/analysis/semantic/exception/UnknownParameterException.html +++ b/docs/jointyc/analysis/semantic/exception/UnknownParameterException.html @@ -2,9 +2,9 @@ - + UnknownParameterException - + diff --git a/docs/jointyc/analysis/semantic/exception/class-use/AnnotationException.html b/docs/jointyc/analysis/semantic/exception/class-use/AnnotationException.html index 5d2ab30..603d6ec 100644 --- a/docs/jointyc/analysis/semantic/exception/class-use/AnnotationException.html +++ b/docs/jointyc/analysis/semantic/exception/class-use/AnnotationException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.exception.AnnotationException - + diff --git a/docs/jointyc/analysis/semantic/exception/class-use/AxiomBufferClearException.html b/docs/jointyc/analysis/semantic/exception/class-use/AxiomBufferClearException.html index 275d8ed..0a02905 100644 --- a/docs/jointyc/analysis/semantic/exception/class-use/AxiomBufferClearException.html +++ b/docs/jointyc/analysis/semantic/exception/class-use/AxiomBufferClearException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.exception.AxiomBufferClearException - + diff --git a/docs/jointyc/analysis/semantic/exception/class-use/MutuallyExclusiveInterpretationsException.html b/docs/jointyc/analysis/semantic/exception/class-use/MutuallyExclusiveInterpretationsException.html index 05ca66c..b2b3b58 100644 --- a/docs/jointyc/analysis/semantic/exception/class-use/MutuallyExclusiveInterpretationsException.html +++ b/docs/jointyc/analysis/semantic/exception/class-use/MutuallyExclusiveInterpretationsException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.exception.MutuallyExclusiveInterpretationsException - + diff --git a/docs/jointyc/analysis/semantic/exception/class-use/NonTerminalReplicationException.html b/docs/jointyc/analysis/semantic/exception/class-use/NonTerminalReplicationException.html index 5284fb3..3ec45fe 100644 --- a/docs/jointyc/analysis/semantic/exception/class-use/NonTerminalReplicationException.html +++ b/docs/jointyc/analysis/semantic/exception/class-use/NonTerminalReplicationException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.exception.NonTerminalReplicationException - + diff --git a/docs/jointyc/analysis/semantic/exception/class-use/SemanticException.html b/docs/jointyc/analysis/semantic/exception/class-use/SemanticException.html index c3980b1..62e2faa 100644 --- a/docs/jointyc/analysis/semantic/exception/class-use/SemanticException.html +++ b/docs/jointyc/analysis/semantic/exception/class-use/SemanticException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.exception.SemanticException - + @@ -112,7 +112,11 @@

              Uses of java.lang.Object -StandardCompiler.compile(java.lang.String source)  +StandardCompiler.compile(java.lang.CharSequence source)  + + +java.lang.Object +StandardCompiler.compile(java.io.File file)  @@ -165,7 +169,7 @@

              Uses of StandardCompiler -JdlCompiler.compileSource(java.lang.String source, +JdlCompiler.compileSource(java.lang.CharSequence source, Interpreter interpreter)
              Compile a JDL string and creates a StandardCompiler with the specified interpreter
              diff --git a/docs/jointyc/analysis/semantic/exception/class-use/TerminalReplicationException.html b/docs/jointyc/analysis/semantic/exception/class-use/TerminalReplicationException.html index 505e477..3996950 100644 --- a/docs/jointyc/analysis/semantic/exception/class-use/TerminalReplicationException.html +++ b/docs/jointyc/analysis/semantic/exception/class-use/TerminalReplicationException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.exception.TerminalReplicationException - + diff --git a/docs/jointyc/analysis/semantic/exception/class-use/UnknownParameterException.html b/docs/jointyc/analysis/semantic/exception/class-use/UnknownParameterException.html index 9726e6d..7bf488c 100644 --- a/docs/jointyc/analysis/semantic/exception/class-use/UnknownParameterException.html +++ b/docs/jointyc/analysis/semantic/exception/class-use/UnknownParameterException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.analysis.semantic.exception.UnknownParameterException - + diff --git a/docs/jointyc/analysis/semantic/exception/package-frame.html b/docs/jointyc/analysis/semantic/exception/package-frame.html index 06bcb9a..6a6b090 100644 --- a/docs/jointyc/analysis/semantic/exception/package-frame.html +++ b/docs/jointyc/analysis/semantic/exception/package-frame.html @@ -2,9 +2,9 @@ - + jointyc.analysis.semantic.exception - + diff --git a/docs/jointyc/analysis/semantic/exception/package-summary.html b/docs/jointyc/analysis/semantic/exception/package-summary.html index 69edeb6..61970b2 100644 --- a/docs/jointyc/analysis/semantic/exception/package-summary.html +++ b/docs/jointyc/analysis/semantic/exception/package-summary.html @@ -2,9 +2,9 @@ - + jointyc.analysis.semantic.exception - + diff --git a/docs/jointyc/analysis/semantic/exception/package-tree.html b/docs/jointyc/analysis/semantic/exception/package-tree.html index 864334d..4295e96 100644 --- a/docs/jointyc/analysis/semantic/exception/package-tree.html +++ b/docs/jointyc/analysis/semantic/exception/package-tree.html @@ -2,9 +2,9 @@ - + jointyc.analysis.semantic.exception Class Hierarchy - + diff --git a/docs/jointyc/analysis/semantic/exception/package-use.html b/docs/jointyc/analysis/semantic/exception/package-use.html index 4afafd6..f44dc87 100644 --- a/docs/jointyc/analysis/semantic/exception/package-use.html +++ b/docs/jointyc/analysis/semantic/exception/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.analysis.semantic.exception - + diff --git a/docs/jointyc/analysis/semantic/package-frame.html b/docs/jointyc/analysis/semantic/package-frame.html index 2514d0e..98cbcd8 100644 --- a/docs/jointyc/analysis/semantic/package-frame.html +++ b/docs/jointyc/analysis/semantic/package-frame.html @@ -2,9 +2,9 @@ - + jointyc.analysis.semantic - + diff --git a/docs/jointyc/analysis/semantic/package-summary.html b/docs/jointyc/analysis/semantic/package-summary.html index 08d9198..22f118d 100644 --- a/docs/jointyc/analysis/semantic/package-summary.html +++ b/docs/jointyc/analysis/semantic/package-summary.html @@ -2,9 +2,9 @@ - + jointyc.analysis.semantic - + diff --git a/docs/jointyc/analysis/semantic/package-tree.html b/docs/jointyc/analysis/semantic/package-tree.html index b235f27..2ae97c6 100644 --- a/docs/jointyc/analysis/semantic/package-tree.html +++ b/docs/jointyc/analysis/semantic/package-tree.html @@ -2,9 +2,9 @@ - + jointyc.analysis.semantic Class Hierarchy - + diff --git a/docs/jointyc/analysis/semantic/package-use.html b/docs/jointyc/analysis/semantic/package-use.html index 13b94c6..8773d6c 100644 --- a/docs/jointyc/analysis/semantic/package-use.html +++ b/docs/jointyc/analysis/semantic/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.analysis.semantic - + diff --git a/docs/jointyc/jdlc/JdlCompiler.html b/docs/jointyc/jdlc/JdlCompiler.html index 460f7b9..6295be6 100644 --- a/docs/jointyc/jdlc/JdlCompiler.html +++ b/docs/jointyc/jdlc/JdlCompiler.html @@ -2,9 +2,9 @@ - + JdlCompiler - + @@ -170,7 +170,7 @@

              Method Summary

              StandardCompiler -compileSource(java.lang.String source, +compileSource(java.lang.CharSequence source, Interpreter interpreter)
              Compile a JDL string and creates a StandardCompiler with the specified interpreter
              @@ -222,13 +222,13 @@

              JdlCompiler

              Method Detail

              - +

    @@ -289,9 +289,9 @@

    compileStream

    Returns:
    a StandardCompiler for the language
    Throws:
    +
    java.io.IOException - if an IO/error occurs
    UnexpectedSymbolException - if the source string presents syntax errors
    SemanticException - if semantic errors are discovered
    -
    java.io.IOException
    @@ -309,7 +309,7 @@

    compileResource

    Compile a JDL text file included as a Java resource and creates a StandardCompiler with the specified interpreter
    Parameters:
    -
    path - the path of the resource to compile.
    +
    path - the path of the resource to compile.
    Examples:
    • absolute package - "my/java/package/resource.jdl": the file "resource.jdl" is in the package "my.java.package";
    • relative package - "resource.jdl": the file "resource.jdl" is in the same package of the interpreter @@ -318,9 +318,9 @@

      compileResource

      Returns:
      a StandardCompiler for the language
      Throws:
      +
      java.io.IOException - if an IO/error occurs in file reading
      UnexpectedSymbolException - if the source string presents syntax errors
      SemanticException - if semantic errors are discovered
      -
      java.io.IOException
    diff --git a/docs/jointyc/jdlc/class-use/JdlCompiler.html b/docs/jointyc/jdlc/class-use/JdlCompiler.html index d9cc848..05ee257 100644 --- a/docs/jointyc/jdlc/class-use/JdlCompiler.html +++ b/docs/jointyc/jdlc/class-use/JdlCompiler.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.jdlc.JdlCompiler - + diff --git a/docs/jointyc/jdlc/exception/NotDeclaredTerminalException.html b/docs/jointyc/jdlc/exception/NotDeclaredTerminalException.html index aa20f26..677344a 100644 --- a/docs/jointyc/jdlc/exception/NotDeclaredTerminalException.html +++ b/docs/jointyc/jdlc/exception/NotDeclaredTerminalException.html @@ -2,9 +2,9 @@ - + NotDeclaredTerminalException - + diff --git a/docs/jointyc/jdlc/exception/class-use/NotDeclaredTerminalException.html b/docs/jointyc/jdlc/exception/class-use/NotDeclaredTerminalException.html index 2309d55..ddff8bd 100644 --- a/docs/jointyc/jdlc/exception/class-use/NotDeclaredTerminalException.html +++ b/docs/jointyc/jdlc/exception/class-use/NotDeclaredTerminalException.html @@ -2,9 +2,9 @@ - + Uses of Class jointyc.jdlc.exception.NotDeclaredTerminalException - + diff --git a/docs/jointyc/jdlc/exception/package-frame.html b/docs/jointyc/jdlc/exception/package-frame.html index dcde613..080d0c6 100644 --- a/docs/jointyc/jdlc/exception/package-frame.html +++ b/docs/jointyc/jdlc/exception/package-frame.html @@ -2,9 +2,9 @@ - + jointyc.jdlc.exception - + diff --git a/docs/jointyc/jdlc/exception/package-summary.html b/docs/jointyc/jdlc/exception/package-summary.html index 490e3ba..3d29881 100644 --- a/docs/jointyc/jdlc/exception/package-summary.html +++ b/docs/jointyc/jdlc/exception/package-summary.html @@ -2,9 +2,9 @@ - + jointyc.jdlc.exception - + diff --git a/docs/jointyc/jdlc/exception/package-tree.html b/docs/jointyc/jdlc/exception/package-tree.html index 2007c7c..4d3a618 100644 --- a/docs/jointyc/jdlc/exception/package-tree.html +++ b/docs/jointyc/jdlc/exception/package-tree.html @@ -2,9 +2,9 @@ - + jointyc.jdlc.exception Class Hierarchy - + diff --git a/docs/jointyc/jdlc/exception/package-use.html b/docs/jointyc/jdlc/exception/package-use.html index 146cc51..070af38 100644 --- a/docs/jointyc/jdlc/exception/package-use.html +++ b/docs/jointyc/jdlc/exception/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.jdlc.exception - + diff --git a/docs/jointyc/jdlc/package-frame.html b/docs/jointyc/jdlc/package-frame.html index 3db4cae..02c7836 100644 --- a/docs/jointyc/jdlc/package-frame.html +++ b/docs/jointyc/jdlc/package-frame.html @@ -2,9 +2,9 @@ - + jointyc.jdlc - + diff --git a/docs/jointyc/jdlc/package-summary.html b/docs/jointyc/jdlc/package-summary.html index 405f2a0..e205866 100644 --- a/docs/jointyc/jdlc/package-summary.html +++ b/docs/jointyc/jdlc/package-summary.html @@ -2,9 +2,9 @@ - + jointyc.jdlc - + diff --git a/docs/jointyc/jdlc/package-tree.html b/docs/jointyc/jdlc/package-tree.html index c3ed353..1eb267d 100644 --- a/docs/jointyc/jdlc/package-tree.html +++ b/docs/jointyc/jdlc/package-tree.html @@ -2,9 +2,9 @@ - + jointyc.jdlc Class Hierarchy - + diff --git a/docs/jointyc/jdlc/package-use.html b/docs/jointyc/jdlc/package-use.html index 5d71b5e..9b37665 100644 --- a/docs/jointyc/jdlc/package-use.html +++ b/docs/jointyc/jdlc/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package jointyc.jdlc - + diff --git a/docs/overview-frame.html b/docs/overview-frame.html index ff15b41..81d4d2b 100644 --- a/docs/overview-frame.html +++ b/docs/overview-frame.html @@ -2,9 +2,9 @@ - + Overview List - + diff --git a/docs/overview-summary.html b/docs/overview-summary.html index 3086c04..b43513a 100644 --- a/docs/overview-summary.html +++ b/docs/overview-summary.html @@ -2,9 +2,9 @@ - + Overview - + diff --git a/docs/overview-tree.html b/docs/overview-tree.html index fa7308d..6314503 100644 --- a/docs/overview-tree.html +++ b/docs/overview-tree.html @@ -2,9 +2,9 @@ - + Class Hierarchy - + @@ -160,6 +160,7 @@

    Annotation Type Hierarchy

  • jointyc.analysis.semantic.annotation.NonTerminalTokens (implements java.lang.annotation.Annotation)
  • jointyc.analysis.semantic.annotation.NonTerminalToken (implements java.lang.annotation.Annotation)
  • jointyc.analysis.semantic.annotation.NoBufferClear (implements java.lang.annotation.Annotation)
  • +
  • jointyc.analysis.semantic.annotation.Language (implements java.lang.annotation.Annotation)
  • Enum Hierarchy