You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
(97) |
Apr
(160) |
May
(139) |
Jun
(17) |
Jul
(51) |
Aug
(39) |
Sep
(21) |
Oct
(45) |
Nov
(60) |
Dec
(110) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(34) |
Feb
(84) |
Mar
(154) |
Apr
(81) |
May
(107) |
Jun
(33) |
Jul
(30) |
Aug
(49) |
Sep
(68) |
Oct
(96) |
Nov
(39) |
Dec
(23) |
2012 |
Jan
(45) |
Feb
(53) |
Mar
(39) |
Apr
(32) |
May
(62) |
Jun
(48) |
Jul
(42) |
Aug
(61) |
Sep
(56) |
Oct
(48) |
Nov
(57) |
Dec
(16) |
2013 |
Jan
(52) |
Feb
(10) |
Mar
(20) |
Apr
(43) |
May
(37) |
Jun
(56) |
Jul
(53) |
Aug
(15) |
Sep
(41) |
Oct
(47) |
Nov
(75) |
Dec
(63) |
2014 |
Jan
(39) |
Feb
(80) |
Mar
(41) |
Apr
(47) |
May
(43) |
Jun
(38) |
Jul
(15) |
Aug
|
Sep
(4) |
Oct
(2) |
Nov
(1) |
Dec
(3) |
2015 |
Jan
(1) |
Feb
(3) |
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(11) |
Dec
(7) |
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <iam...@us...> - 2010-03-23 18:06:19
|
Revision: 1340 http://eulergui.svn.sourceforge.net/eulergui/?rev=1340&view=rev Author: iamlolive Date: 2010-03-23 18:06:05 +0000 (Tue, 23 Mar 2010) Log Message: ----------- useless commit. i am checking my settings.xml. Modified Paths: -------------- trunk/eulergui/src/main/java/n3_project/Project.java Modified: trunk/eulergui/src/main/java/n3_project/Project.java =================================================================== --- trunk/eulergui/src/main/java/n3_project/Project.java 2010-03-23 06:30:31 UTC (rev 1339) +++ trunk/eulergui/src/main/java/n3_project/Project.java 2010-03-23 18:06:05 UTC (rev 1340) @@ -2,4 +2,6 @@ public class Project extends eulergui.project.Project { + + /**/ } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2010-03-23 06:30:41
|
Revision: 1339 http://eulergui.svn.sourceforge.net/eulergui/?rev=1339&view=rev Author: luc_peuvrier Date: 2010-03-23 06:30:31 +0000 (Tue, 23 Mar 2010) Log Message: ----------- added management of comment ending by end of file in n3 files Modified Paths: -------------- trunk/eulergui/src/main/parser4j/resources/n3.2.bnf4 trunk/eulergui/src/main/resources/parser4j/n3-parser.data trunk/eulergui/src/target/generated-resources/parser4j/n3-grammardef.txt trunk/eulergui/src/target/generated-resources/parser4j/n3-grammartree.txt trunk/eulergui/src/target/generated-resources/parser4j/n3.html trunk/eulergui/src/target/generated-resources/parser4j/n3_lexgen.txt trunk/eulergui/src/test/java/eulergui/parser/n3/impl/parser4j/service/bugs/TestN3ForBugs.java Added Paths: ----------- trunk/eulergui/test/parser/n3/impl/parser4j/bugs/end_of_file_comment.n3 Modified: trunk/eulergui/src/main/parser4j/resources/n3.2.bnf4 =================================================================== --- trunk/eulergui/src/main/parser4j/resources/n3.2.bnf4 2010-03-23 06:17:47 UTC (rev 1338) +++ trunk/eulergui/src/main/parser4j/resources/n3.2.bnf4 2010-03-23 06:30:31 UTC (rev 1339) @@ -256,9 +256,13 @@ ; wsElt : [\u0000- ] - | '#' chars_in_comment_opt '\n' + | '#' chars_in_comment_opt eol_opt ; +eol_opt: + | '\n' + ; + chars_in_comment_opt : | chars_in_comment ; Modified: trunk/eulergui/src/main/resources/parser4j/n3-parser.data =================================================================== (Binary files differ) Modified: trunk/eulergui/src/target/generated-resources/parser4j/n3-grammardef.txt =================================================================== --- trunk/eulergui/src/target/generated-resources/parser4j/n3-grammardef.txt 2010-03-23 06:17:47 UTC (rev 1338) +++ trunk/eulergui/src/target/generated-resources/parser4j/n3-grammardef.txt 2010-03-23 06:30:31 UTC (rev 1339) @@ -665,12 +665,23 @@ begin of StatementDef NON_TERMINAL, match mgr: null, nt defined: wsElt_1_1, non terminal identifier: chars_in_comment_opt soon of wsElt_1 end of NON_TERMINAL - begin of StatementDef TERMINAL_CHAR, match mgr: null, nt defined: wsElt_1_2, terminal character: 0Xa + begin of StatementDef NON_TERMINAL, match mgr: null, nt defined: wsElt_1_2, non terminal identifier: eol_opt root - end of TERMINAL_CHAR + end of NON_TERMINAL end of CONCAT end of ALTERNATIVE end of RuleDef, non terminal defined: wsElt, is token: false + begin of RuleDef, non terminal defined: eol_opt, is token: false + begin of StatementDef ALTERNATIVE, match mgr: null, nt defined: eol_opt + root + begin of StatementDef EMPTY, match mgr: null, nt defined: eol_opt_0 + root + end of EMPTY + begin of StatementDef TERMINAL_CHAR, match mgr: null, nt defined: eol_opt_1, terminal character: 0Xa + root + end of TERMINAL_CHAR + end of ALTERNATIVE + end of RuleDef, non terminal defined: eol_opt, is token: false begin of RuleDef, non terminal defined: chars_in_comment_opt, is token: false begin of StatementDef ALTERNATIVE, match mgr: null, nt defined: chars_in_comment_opt root Modified: trunk/eulergui/src/target/generated-resources/parser4j/n3-grammartree.txt =================================================================== --- trunk/eulergui/src/target/generated-resources/parser4j/n3-grammartree.txt 2010-03-23 06:17:47 UTC (rev 1338) +++ trunk/eulergui/src/target/generated-resources/parser4j/n3-grammartree.txt 2010-03-23 06:30:31 UTC (rev 1339) @@ -151,6 +151,9 @@ { Match2StringValueConcat } dtlang_2_0 :(concat) ws (as white space) & double_caret { MatchEqu } +eol_opt :(alternative) eol_opt_0 | eol_opt_1 +eol_opt_0 :(empty) +eol_opt_1 :(terminal char) \x0A $[exclam] :(terminal char) '!' existential :(concat) existential_0 & symbol_csl { MatchFor } @@ -481,9 +484,8 @@ $[ws] :(alternative) ws_0 | ws_list wsElt :(alternative) wsElt_0 | wsElt_1 wsElt_0 :(char range) ['\x00 thru ' ''] -wsElt_1 :(concat) wsElt_1_0 & chars_in_comment_opt & wsElt_1_2 +wsElt_1 :(concat) wsElt_1_0 & chars_in_comment_opt & eol_opt wsElt_1_0 :(terminal char) '#' -wsElt_1_2 :(terminal char) \x0A ws_0 :(empty) ws_list :(alternative) wsElt | ws_list_1 ws_list_1 :(concat) ws_list & wsElt Modified: trunk/eulergui/src/target/generated-resources/parser4j/n3.html =================================================================== --- trunk/eulergui/src/target/generated-resources/parser4j/n3.html 2010-03-23 06:17:47 UTC (rev 1338) +++ trunk/eulergui/src/target/generated-resources/parser4j/n3.html 2010-03-23 06:30:31 UTC (rev 1339) @@ -80,10 +80,15 @@ <ul> <li>by [0X0 - 0X9] goto <a href="#lexstate34">state #34</a></li> <li>by [0Xa - 0Xa] goto <a href="#lexstate35">state #35</a></li> -<li>by [0Xb - 0Xffff] goto <a href="#lexstate36">state #36</a></li> +<li>by [0Xb - ' '] goto <a href="#lexstate36">state #36</a></li> +<li>by ['!' - '"'] goto <a href="#lexstate37">state #37</a></li> +<li>by ['#' - '#'] goto <a href="#lexstate38">state #38</a></li> +<li>by ['$' - 0Xffff] goto <a href="#lexstate37">state #37</a></li> </ul> match:<br> <ul> +<li> +ws</li> </ul> <a name="lexstate5"></a><span style="font-weight: bold; text-decoration: underline;">state #5</span><br><br> goto by terminal:<br> @@ -104,10 +109,10 @@ <a name="lexstate7"></a><span style="font-weight: bold; text-decoration: underline;">state #7</span><br><br> goto by terminal:<br> <ul> -<li>by ['.' - '.'] goto <a href="#lexstate37">state #37</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate38">state #38</a></li> -<li>by ['E' - 'E'] goto <a href="#lexstate39">state #39</a></li> -<li>by ['e' - 'e'] goto <a href="#lexstate40">state #40</a></li> +<li>by ['.' - '.'] goto <a href="#lexstate39">state #39</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate40">state #40</a></li> +<li>by ['E' - 'E'] goto <a href="#lexstate41">state #41</a></li> +<li>by ['e' - 'e'] goto <a href="#lexstate42">state #42</a></li> </ul> match:<br> <ul> @@ -117,11 +122,11 @@ <a name="lexstate8"></a><span style="font-weight: bold; text-decoration: underline;">state #8</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate41">state #41</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate42">state #42</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate43">state #43</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate44">state #44</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate45">state #45</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate43">state #43</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate44">state #44</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate45">state #45</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate46">state #46</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate47">state #47</a></li> </ul> match:<br> <ul> @@ -133,10 +138,10 @@ <a name="lexstate9"></a><span style="font-weight: bold; text-decoration: underline;">state #9</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - '<'] goto <a href="#lexstate46">state #46</a></li> -<li>by ['=' - '='] goto <a href="#lexstate47">state #47</a></li> -<li>by ['>' - '>'] goto <a href="#lexstate48">state #48</a></li> -<li>by ['?' - 0Xffff] goto <a href="#lexstate49">state #49</a></li> +<li>by [0X0 - '<'] goto <a href="#lexstate48">state #48</a></li> +<li>by ['=' - '='] goto <a href="#lexstate49">state #49</a></li> +<li>by ['>' - '>'] goto <a href="#lexstate50">state #50</a></li> +<li>by ['?' - 0Xffff] goto <a href="#lexstate51">state #51</a></li> </ul> match:<br> <ul> @@ -144,7 +149,7 @@ <a name="lexstate10"></a><span style="font-weight: bold; text-decoration: underline;">state #10</span><br><br> goto by terminal:<br> <ul> -<li>by ['>' - '>'] goto <a href="#lexstate50">state #50</a></li> +<li>by ['>' - '>'] goto <a href="#lexstate52">state #52</a></li> </ul> match:<br> <ul> @@ -154,9 +159,9 @@ <a name="lexstate11"></a><span style="font-weight: bold; text-decoration: underline;">state #11</span><br><br> goto by terminal:<br> <ul> -<li>by ['A' - 'Z'] goto <a href="#lexstate51">state #51</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate52">state #52</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate53">state #53</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate53">state #53</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate54">state #54</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate55">state #55</a></li> </ul> match:<br> <ul> @@ -164,15 +169,15 @@ <a name="lexstate12"></a><span style="font-weight: bold; text-decoration: underline;">state #12</span><br><br> goto by terminal:<br> <ul> -<li>by ['a' - 'a'] goto <a href="#lexstate54">state #54</a></li> -<li>by ['b' - 'b'] goto <a href="#lexstate55">state #55</a></li> -<li>by ['f' - 'f'] goto <a href="#lexstate56">state #56</a></li> -<li>by ['h' - 'h'] goto <a href="#lexstate57">state #57</a></li> -<li>by ['i' - 'i'] goto <a href="#lexstate58">state #58</a></li> -<li>by ['k' - 'k'] goto <a href="#lexstate59">state #59</a></li> -<li>by ['o' - 'o'] goto <a href="#lexstate60">state #60</a></li> -<li>by ['p' - 'p'] goto <a href="#lexstate61">state #61</a></li> -<li>by ['t' - 't'] goto <a href="#lexstate62">state #62</a></li> +<li>by ['a' - 'a'] goto <a href="#lexstate56">state #56</a></li> +<li>by ['b' - 'b'] goto <a href="#lexstate57">state #57</a></li> +<li>by ['f' - 'f'] goto <a href="#lexstate58">state #58</a></li> +<li>by ['h' - 'h'] goto <a href="#lexstate59">state #59</a></li> +<li>by ['i' - 'i'] goto <a href="#lexstate60">state #60</a></li> +<li>by ['k' - 'k'] goto <a href="#lexstate61">state #61</a></li> +<li>by ['o' - 'o'] goto <a href="#lexstate62">state #62</a></li> +<li>by ['p' - 'p'] goto <a href="#lexstate63">state #63</a></li> +<li>by ['t' - 't'] goto <a href="#lexstate64">state #64</a></li> </ul> match:<br> <ul> @@ -182,12 +187,12 @@ <a name="lexstate13"></a><span style="font-weight: bold; text-decoration: underline;">state #13</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate63">state #63</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate65">state #65</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate70">state #70</a></li> </ul> match:<br> <ul> @@ -201,7 +206,7 @@ <a name="lexstate14"></a><span style="font-weight: bold; text-decoration: underline;">state #14</span><br><br> goto by terminal:<br> <ul> -<li>by ['^' - '^'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['^' - '^'] goto <a href="#lexstate71">state #71</a></li> </ul> match:<br> <ul> @@ -211,12 +216,12 @@ <a name="lexstate15"></a><span style="font-weight: bold; text-decoration: underline;">state #15</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate63">state #63</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate65">state #65</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate70">state #70</a></li> </ul> match:<br> <ul> @@ -230,12 +235,12 @@ <a name="lexstate16"></a><span style="font-weight: bold; text-decoration: underline;">state #16</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -253,12 +258,12 @@ <a name="lexstate17"></a><span style="font-weight: bold; text-decoration: underline;">state #17</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -274,13 +279,13 @@ <a name="lexstate18"></a><span style="font-weight: bold; text-decoration: underline;">state #18</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'a'] goto <a href="#lexstate72">state #72</a></li> -<li>by ['b' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'a'] goto <a href="#lexstate74">state #74</a></li> +<li>by ['b' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -296,12 +301,12 @@ <a name="lexstate19"></a><span style="font-weight: bold; text-decoration: underline;">state #19</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -317,13 +322,13 @@ <a name="lexstate20"></a><span style="font-weight: bold; text-decoration: underline;">state #20</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'a'] goto <a href="#lexstate73">state #73</a></li> -<li>by ['b' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'a'] goto <a href="#lexstate75">state #75</a></li> +<li>by ['b' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -339,14 +344,14 @@ <a name="lexstate21"></a><span style="font-weight: bold; text-decoration: underline;">state #21</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'r'] goto <a href="#lexstate71">state #71</a></li> -<li>by ['s' - 's'] goto <a href="#lexstate74">state #74</a></li> -<li>by ['t' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'r'] goto <a href="#lexstate73">state #73</a></li> +<li>by ['s' - 's'] goto <a href="#lexstate76">state #76</a></li> +<li>by ['t' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -362,12 +367,12 @@ <a name="lexstate22"></a><span style="font-weight: bold; text-decoration: underline;">state #22</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -383,14 +388,14 @@ <a name="lexstate23"></a><span style="font-weight: bold; text-decoration: underline;">state #23</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'e'] goto <a href="#lexstate71">state #71</a></li> -<li>by ['f' - 'f'] goto <a href="#lexstate75">state #75</a></li> -<li>by ['g' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'e'] goto <a href="#lexstate73">state #73</a></li> +<li>by ['f' - 'f'] goto <a href="#lexstate77">state #77</a></li> +<li>by ['g' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -406,12 +411,12 @@ <a name="lexstate24"></a><span style="font-weight: bold; text-decoration: underline;">state #24</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -427,14 +432,14 @@ <a name="lexstate25"></a><span style="font-weight: bold; text-decoration: underline;">state #25</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'q'] goto <a href="#lexstate71">state #71</a></li> -<li>by ['r' - 'r'] goto <a href="#lexstate76">state #76</a></li> -<li>by ['s' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'q'] goto <a href="#lexstate73">state #73</a></li> +<li>by ['r' - 'r'] goto <a href="#lexstate78">state #78</a></li> +<li>by ['s' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -450,12 +455,12 @@ <a name="lexstate26"></a><span style="font-weight: bold; text-decoration: underline;">state #26</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate70">state #70</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate64">state #64</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate66">state #66</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate67">state #67</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate71">state #71</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate72">state #72</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate66">state #66</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate68">state #68</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate69">state #69</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate73">state #73</a></li> </ul> match:<br> <ul> @@ -482,21 +487,26 @@ <a name="lexstate28"></a><span style="font-weight: bold; text-decoration: underline;">state #28</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - 0X9] goto <a href="#lexstate77">state #77</a></li> -<li>by [0Xa - 0Xa] goto <a href="#lexstate78">state #78</a></li> -<li>by [0Xb - 0Xffff] goto <a href="#lexstate79">state #79</a></li> +<li>by [0X0 - 0X9] goto <a href="#lexstate79">state #79</a></li> +<li>by [0Xa - 0Xa] goto <a href="#lexstate80">state #80</a></li> +<li>by [0Xb - ' '] goto <a href="#lexstate81">state #81</a></li> +<li>by ['!' - '"'] goto <a href="#lexstate82">state #82</a></li> +<li>by ['#' - '#'] goto <a href="#lexstate83">state #83</a></li> +<li>by ['$' - 0Xffff] goto <a href="#lexstate82">state #82</a></li> </ul> match:<br> <ul> +<li> +ws</li> </ul> <a name="lexstate29"></a><span style="font-weight: bold; text-decoration: underline;">state #29</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - '!'] goto <a href="#lexstate80">state #80</a></li> -<li>by ['"' - '"'] goto <a href="#lexstate81">state #81</a></li> -<li>by ['#' - '['] goto <a href="#lexstate82">state #82</a></li> -<li>by ['\' - '\'] goto <a href="#lexstate83">state #83</a></li> -<li>by [']' - 0Xffff] goto <a href="#lexstate84">state #84</a></li> +<li>by [0X0 - '!'] goto <a href="#lexstate84">state #84</a></li> +<li>by ['"' - '"'] goto <a href="#lexstate85">state #85</a></li> +<li>by ['#' - '['] goto <a href="#lexstate86">state #86</a></li> +<li>by ['\' - '\'] goto <a href="#lexstate87">state #87</a></li> +<li>by [']' - 0Xffff] goto <a href="#lexstate88">state #88</a></li> </ul> match:<br> <ul> @@ -504,7 +514,7 @@ <a name="lexstate30"></a><span style="font-weight: bold; text-decoration: underline;">state #30</span><br><br> goto by terminal:<br> <ul> -<li>by ['"' - '"'] goto <a href="#lexstate85">state #85</a></li> +<li>by ['"' - '"'] goto <a href="#lexstate89">state #89</a></li> </ul> match:<br> <ul> @@ -514,11 +524,11 @@ <a name="lexstate31"></a><span style="font-weight: bold; text-decoration: underline;">state #31</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - '!'] goto <a href="#lexstate80">state #80</a></li> -<li>by ['"' - '"'] goto <a href="#lexstate81">state #81</a></li> -<li>by ['#' - '['] goto <a href="#lexstate82">state #82</a></li> -<li>by ['\' - '\'] goto <a href="#lexstate83">state #83</a></li> -<li>by [']' - 0Xffff] goto <a href="#lexstate84">state #84</a></li> +<li>by [0X0 - '!'] goto <a href="#lexstate84">state #84</a></li> +<li>by ['"' - '"'] goto <a href="#lexstate85">state #85</a></li> +<li>by ['#' - '['] goto <a href="#lexstate86">state #86</a></li> +<li>by ['\' - '\'] goto <a href="#lexstate87">state #87</a></li> +<li>by [']' - 0Xffff] goto <a href="#lexstate88">state #88</a></li> </ul> match:<br> <ul> @@ -526,19 +536,19 @@ <a name="lexstate32"></a><span style="font-weight: bold; text-decoration: underline;">state #32</span><br><br> goto by terminal:<br> <ul> -<li>by ['"' - '"'] goto <a href="#lexstate86">state #86</a></li> -<li>by [''' - '''] goto <a href="#lexstate87">state #87</a></li> -<li>by ['0' - '0'] goto <a href="#lexstate88">state #88</a></li> -<li>by ['U' - 'U'] goto <a href="#lexstate89">state #89</a></li> -<li>by ['\' - '\'] goto <a href="#lexstate90">state #90</a></li> -<li>by ['a' - 'a'] goto <a href="#lexstate91">state #91</a></li> -<li>by ['b' - 'b'] goto <a href="#lexstate92">state #92</a></li> -<li>by ['f' - 'f'] goto <a href="#lexstate93">state #93</a></li> -<li>by ['n' - 'n'] goto <a href="#lexstate94">state #94</a></li> -<li>by ['r' - 'r'] goto <a href="#lexstate95">state #95</a></li> -<li>by ['t' - 't'] goto <a href="#lexstate96">state #96</a></li> -<li>by ['u' - 'u'] goto <a href="#lexstate97">state #97</a></li> -<li>by ['v' - 'v'] goto <a href="#lexstate98">state #98</a></li> +<li>by ['"' - '"'] goto <a href="#lexstate90">state #90</a></li> +<li>by [''' - '''] goto <a href="#lexstate91">state #91</a></li> +<li>by ['0' - '0'] goto <a href="#lexstate92">state #92</a></li> +<li>by ['U' - 'U'] goto <a href="#lexstate93">state #93</a></li> +<li>by ['\' - '\'] goto <a href="#lexstate94">state #94</a></li> +<li>by ['a' - 'a'] goto <a href="#lexstate95">state #95</a></li> +<li>by ['b' - 'b'] goto <a href="#lexstate96">state #96</a></li> +<li>by ['f' - 'f'] goto <a href="#lexstate97">state #97</a></li> +<li>by ['n' - 'n'] goto <a href="#lexstate98">state #98</a></li> +<li>by ['r' - 'r'] goto <a href="#lexstate99">state #99</a></li> +<li>by ['t' - 't'] goto <a href="#lexstate100">state #100</a></li> +<li>by ['u' - 'u'] goto <a href="#lexstate101">state #101</a></li> +<li>by ['v' - 'v'] goto <a href="#lexstate102">state #102</a></li> </ul> match:<br> <ul> @@ -546,11 +556,11 @@ <a name="lexstate33"></a><span style="font-weight: bold; text-decoration: underline;">state #33</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - '!'] goto <a href="#lexstate80">state #80</a></li> -<li>by ['"' - '"'] goto <a href="#lexstate81">state #81</a></li> -<li>by ['#' - '['] goto <a href="#lexstate82">state #82</a></li> -<li>by ['\' - '\'] goto <a href="#lexstate83">state #83</a></li> -<li>by [']' - 0Xffff] goto <a href="#lexstate84">state #84</a></li> +<li>by [0X0 - '!'] goto <a href="#lexstate84">state #84</a></li> +<li>by ['"' - '"'] goto <a href="#lexstate85">state #85</a></li> +<li>by ['#' - '['] goto <a href="#lexstate86">state #86</a></li> +<li>by ['\' - '\'] goto <a href="#lexstate87">state #87</a></li> +<li>by [']' - 0Xffff] goto <a href="#lexstate88">state #88</a></li> </ul> match:<br> <ul> @@ -558,12 +568,17 @@ <a name="lexstate34"></a><span style="font-weight: bold; text-decoration: underline;">state #34</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - 0X9] goto <a href="#lexstate99">state #99</a></li> +<li>by [0X0 - 0X9] goto <a href="#lexstate103">state #103</a></li> <li>by [0Xa - 0Xa] goto <a href="#lexstate35">state #35</a></li> -<li>by [0Xb - 0Xffff] goto <a href="#lexstate100">state #100</a></li> +<li>by [0Xb - ' '] goto <a href="#lexstate104">state #104</a></li> +<li>by ['!' - '"'] goto <a href="#lexstate105">state #105</a></li> +<li>by ['#' - '#'] goto <a href="#lexstate106">state #106</a></li> +<li>by ['$' - 0Xffff] goto <a href="#lexstate105">state #105</a></li> </ul> match:<br> <ul> +<li> +ws</li> </ul> <a name="lexstate35"></a><span style="font-weight: bold; text-decoration: underline;">state #35</span><br><br> goto by terminal:<br> @@ -579,42 +594,54 @@ <a name="lexstate36"></a><span style="font-weight: bold; text-decoration: underline;">state #36</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - 0X9] goto <a href="#lexstate99">state #99</a></li> +<li>by [0X0 - 0X9] goto <a href="#lexstate103">state #103</a></li> <li>by [0Xa - 0Xa] goto <a href="#lexstate35">state #35</a></li> -<li>by [0Xb - 0Xffff] goto <a href="#lexstate100">state #100</a></li> +<li>by [0Xb - ' '] goto <a href="#lexstate104">state #104</a></li> +<li>by ['!' - '"'] goto <a href="#lexstate105">state #105</a></li> +<li>by ['#' - '#'] goto <a href="#lexstate106">state #106</a></li> +<li>by ['$' - 0Xffff] goto <a href="#lexstate105">state #105</a></li> </ul> match:<br> <ul> +<li> +ws</li> </ul> <a name="lexstate37"></a><span style="font-weight: bold; text-decoration: underline;">state #37</span><br><br> goto by terminal:<br> <ul> -<li>by ['0' - '9'] goto <a href="#lexstate101">state #101</a></li> -<li>by ['E' - 'E'] goto <a href="#lexstate39">state #39</a></li> -<li>by ['e' - 'e'] goto <a href="#lexstate40">state #40</a></li> +<li>by [0X0 - 0X9] goto <a href="#lexstate103">state #103</a></li> +<li>by [0Xa - 0Xa] goto <a href="#lexstate35">state #35</a></li> +<li>by [0Xb - ' '] goto <a href="#lexstate104">state #104</a></li> +<li>by ['!' - '"'] goto <a href="#lexstate105">state #105</a></li> +<li>by ['#' - '#'] goto <a href="#lexstate106">state #106</a></li> +<li>by ['$' - 0Xffff] goto <a href="#lexstate105">state #105</a></li> </ul> match:<br> <ul> +<li> +ws</li> </ul> <a name="lexstate38"></a><span style="font-weight: bold; text-decoration: underline;">state #38</span><br><br> goto by terminal:<br> <ul> -<li>by ['.' - '.'] goto <a href="#lexstate37">state #37</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate38">state #38</a></li> -<li>by ['E' - 'E'] goto <a href="#lexstate39">state #39</a></li> -<li>by ['e' - 'e'] goto <a href="#lexstate40">state #40</a></li> +<li>by [0X0 - 0X9] goto <a href="#lexstate107">state #107</a></li> +<li>by [0Xa - 0Xa] goto <a href="#lexstate108">state #108</a></li> +<li>by [0Xb - ' '] goto <a href="#lexstate109">state #109</a></li> +<li>by ['!' - '"'] goto <a href="#lexstate110">state #110</a></li> +<li>by ['#' - '#'] goto <a href="#lexstate111">state #111</a></li> +<li>by ['$' - 0Xffff] goto <a href="#lexstate110">state #110</a></li> </ul> match:<br> <ul> <li> -integer</li> +ws</li> </ul> <a name="lexstate39"></a><span style="font-weight: bold; text-decoration: underline;">state #39</span><br><br> goto by terminal:<br> <ul> -<li>by ['+' - '+'] goto <a href="#lexstate102">state #102</a></li> -<li>by ['-' - '-'] goto <a href="#lexstate103">state #103</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate104">state #104</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate112">state #112</a></li> +<li>by ['E' - 'E'] goto <a href="#lexstate41">state #41</a></li> +<li>by ['e' - 'e'] goto <a href="#lexstate42">state #42</a></li> </ul> match:<br> <ul> @@ -622,49 +649,44 @@ <a name="lexstate40"></a><span style="font-weight: bold; text-decoration: underline;">state #40</span><br><br> goto by terminal:<br> <ul> -<li>by ['+' - '+'] goto <a href="#lexstate102">state #102</a></li> -<li>by ['-' - '-'] goto <a href="#lexstate103">state #103</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate104">state #104</a></li> +<li>by ['.' - '.'] goto <a href="#lexstate39">state #39</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate40">state #40</a></li> +<li>by ['E' - 'E'] goto <a href="#lexstate41">state #41</a></li> +<li>by ['e' - 'e'] goto <a href="#lexstate42">state #42</a></li> </ul> match:<br> <ul> +<li> +integer</li> </ul> <a name="lexstate41"></a><span style="font-weight: bold; text-decoration: underline;">state #41</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate105">state #105</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate106">state #106</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate107">state #107</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate108">state #108</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate109">state #109</a></li> +<li>by ['+' - '+'] goto <a href="#lexstate113">state #113</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate114">state #114</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate115">state #115</a></li> </ul> match:<br> <ul> -<li> -qname</li> </ul> <a name="lexstate42"></a><span style="font-weight: bold; text-decoration: underline;">state #42</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate105">state #105</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate106">state #106</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate107">state #107</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate108">state #108</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate109">state #109</a></li> +<li>by ['+' - '+'] goto <a href="#lexstate113">state #113</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate114">state #114</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate115">state #115</a></li> </ul> match:<br> <ul> -<li> -qname</li> </ul> <a name="lexstate43"></a><span style="font-weight: bold; text-decoration: underline;">state #43</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate105">state #105</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate106">state #106</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate107">state #107</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate108">state #108</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate109">state #109</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate116">state #116</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate117">state #117</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate118">state #118</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate119">state #119</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate120">state #120</a></li> </ul> match:<br> <ul> @@ -674,11 +696,11 @@ <a name="lexstate44"></a><span style="font-weight: bold; text-decoration: underline;">state #44</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate105">state #105</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate106">state #106</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate107">state #107</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate108">state #108</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate109">state #109</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate116">state #116</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate117">state #117</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate118">state #118</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate119">state #119</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate120">state #120</a></li> </ul> match:<br> <ul> @@ -688,11 +710,11 @@ <a name="lexstate45"></a><span style="font-weight: bold; text-decoration: underline;">state #45</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate105">state #105</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate106">state #106</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate107">state #107</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate108">state #108</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate109">state #109</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate116">state #116</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate117">state #117</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate118">state #118</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate119">state #119</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate120">state #120</a></li> </ul> match:<br> <ul> @@ -702,40 +724,49 @@ <a name="lexstate46"></a><span style="font-weight: bold; text-decoration: underline;">state #46</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - '='] goto <a href="#lexstate110">state #110</a></li> -<li>by ['>' - '>'] goto <a href="#lexstate48">state #48</a></li> -<li>by ['?' - 0Xffff] goto <a href="#lexstate111">state #111</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate116">state #116</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate117">state #117</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate118">state #118</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate119">state #119</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate120">state #120</a></li> </ul> match:<br> <ul> +<li> +qname</li> </ul> <a name="lexstate47"></a><span style="font-weight: bold; text-decoration: underline;">state #47</span><br><br> goto by terminal:<br> <ul> +<li>by ['-' - '-'] goto <a href="#lexstate116">state #116</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate117">state #117</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate118">state #118</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate119">state #119</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate120">state #120</a></li> </ul> match:<br> <ul> <li> -revert_implies</li> +qname</li> </ul> <a name="lexstate48"></a><span style="font-weight: bold; text-decoration: underline;">state #48</span><br><br> goto by terminal:<br> <ul> +<li>by [0X0 - '='] goto <a href="#lexstate121">state #121</a></li> +<li>by ['>' - '>'] goto <a href="#lexstate50">state #50</a></li> +<li>by ['?' - 0Xffff] goto <a href="#lexstate122">state #122</a></li> </ul> match:<br> <ul> -<li> -strexplicituri</li> </ul> <a name="lexstate49"></a><span style="font-weight: bold; text-decoration: underline;">state #49</span><br><br> goto by terminal:<br> <ul> -<li>by [0X0 - '='] goto <a href="#lexstate110">state #110</a></li> -<li>by ['>' - '>'] goto <a href="#lexstate48">state #48</a></li> -<li>by ['?' - 0Xffff] goto <a href="#lexstate111">state #111</a></li> </ul> match:<br> <ul> +<li> +revert_implies</li> </ul> <a name="lexstate50"></a><span style="font-weight: bold; text-decoration: underline;">state #50</span><br><br> goto by terminal:<br> @@ -744,48 +775,35 @@ match:<br> <ul> <li> -implies</li> +strexplicituri</li> </ul> <a name="lexstate51"></a><span style="font-weight: bold; text-decoration: underline;">state #51</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate112">state #112</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate113">state #113</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate114">state #114</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate115">state #115</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate116">state #116</a></li> +<li>by [0X0 - '='] goto <a href="#lexstate121">state #121</a></li> +<li>by ['>' - '>'] goto <a href="#lexstate50">state #50</a></li> +<li>by ['?' - 0Xffff] goto <a href="#lexstate122">state #122</a></li> </ul> match:<br> <ul> -<li> -name</li> -<li> -quickvariable</li> </ul> <a name="lexstate52"></a><span style="font-weight: bold; text-decoration: underline;">state #52</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate112">state #112</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate113">state #113</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate114">state #114</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate115">state #115</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate116">state #116</a></li> </ul> match:<br> <ul> <li> -name</li> -<li> -quickvariable</li> +implies</li> </ul> <a name="lexstate53"></a><span style="font-weight: bold; text-decoration: underline;">state #53</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate112">state #112</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate113">state #113</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate114">state #114</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate115">state #115</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate116">state #116</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate123">state #123</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate124">state #124</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate125">state #125</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate126">state #126</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate127">state #127</a></li> </ul> match:<br> <ul> @@ -797,33 +815,48 @@ <a name="lexstate54"></a><span style="font-weight: bold; text-decoration: underline;">state #54</span><br><br> goto by terminal:<br> <ul> +<li>by ['-' - '-'] goto <a href="#lexstate123">state #123</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate124">state #124</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate125">state #125</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate126">state #126</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate127">state #127</a></li> </ul> match:<br> <ul> <li> -keyword_a</li> +name</li> +<li> +quickvariable</li> </ul> <a name="lexstate55"></a><span style="font-weight: bold; text-decoration: underline;">state #55</span><br><br> goto by terminal:<br> <ul> -<li>by ['a' - 'a'] goto <a href="#lexstate117">state #117</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate123">state #123</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate124">state #124</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate125">state #125</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate126">state #126</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate127">state #127</a></li> </ul> match:<br> <ul> +<li> +name</li> +<li> +quickvariable</li> </ul> <a name="lexstate56"></a><span style="font-weight: bold; text-decoration: underline;">state #56</span><br><br> goto by terminal:<br> <ul> -<li>by ['a' - 'a'] goto <a href="#lexstate118">state #118</a></li> -<li>by ['o' - 'o'] goto <a href="#lexstate119">state #119</a></li> </ul> match:<br> <ul> +<li> +keyword_a</li> </ul> <a name="lexstate57"></a><span style="font-weight: bold; text-decoration: underline;">state #57</span><br><br> goto by terminal:<br> <ul> -<li>by ['a' - 'a'] goto <a href="#lexstate120">state #120</a></li> +<li>by ['a' - 'a'] goto <a href="#lexstate128">state #128</a></li> </ul> match:<br> <ul> @@ -831,7 +864,8 @@ <a name="lexstate58"></a><span style="font-weight: bold; text-decoration: underline;">state #58</span><br><br> goto by terminal:<br> <ul> -<li>by ['s' - 's'] goto <a href="#lexstate121">state #121</a></li> +<li>by ['a' - 'a'] goto <a href="#lexstate129">state #129</a></li> +<li>by ['o' - 'o'] goto <a href="#lexstate130">state #130</a></li> </ul> match:<br> <ul> @@ -839,7 +873,7 @@ <a name="lexstate59"></a><span style="font-weight: bold; text-decoration: underline;">state #59</span><br><br> goto by terminal:<br> <ul> -<li>by ['e' - 'e'] goto <a href="#lexstate122">state #122</a></li> +<li>by ['a' - 'a'] goto <a href="#lexstate131">state #131</a></li> </ul> match:<br> <ul> @@ -847,7 +881,7 @@ <a name="lexstate60"></a><span style="font-weight: bold; text-decoration: underline;">state #60</span><br><br> goto by terminal:<br> <ul> -<li>by ['f' - 'f'] goto <a href="#lexstate123">state #123</a></li> +<li>by ['s' - 's'] goto <a href="#lexstate132">state #132</a></li> </ul> match:<br> <ul> @@ -855,7 +889,7 @@ <a name="lexstate61"></a><span style="font-weight: bold; text-decoration: underline;">state #61</span><br><br> goto by terminal:<br> <ul> -<li>by ['r' - 'r'] goto <a href="#lexstate124">state #124</a></li> +<li>by ['e' - 'e'] goto <a href="#lexstate133">state #133</a></li> </ul> match:<br> <ul> @@ -863,7 +897,7 @@ <a name="lexstate62"></a><span style="font-weight: bold; text-decoration: underline;">state #62</span><br><br> goto by terminal:<br> <ul> -<li>by ['r' - 'r'] goto <a href="#lexstate125">state #125</a></li> +<li>by ['f' - 'f'] goto <a href="#lexstate134">state #134</a></li> </ul> match:<br> <ul> @@ -871,15 +905,31 @@ <a name="lexstate63"></a><span style="font-weight: bold; text-decoration: underline;">state #63</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate126">state #126</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate127">state #127</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate128">state #128</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate129">state #129</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate130">state #130</a></li> +<li>by ['r' - 'r'] goto <a href="#lexstate135">state #135</a></li> </ul> match:<br> <ul> +</ul> +<a name="lexstate64"></a><span style="font-weight: bold; text-decoration: underline;">state #64</span><br><br> +goto by terminal:<br> +<ul> +<li>by ['r' - 'r'] goto <a href="#lexstate136">state #136</a></li> +</ul> +match:<br> +<ul> +</ul> +<a name="lexstate65"></a><span style="font-weight: bold; text-decoration: underline;">state #65</span><br><br> +goto by terminal:<br> +<ul> +<li>by ['-' - '-'] goto <a href="#lexstate137">state #137</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate138">state #138</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate139">state #139</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate140">state #140</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate141">state #141</a></li> +</ul> +match:<br> +<ul> <li> name</li> <li> @@ -887,15 +937,15 @@ <li> qname</li> </ul> -<a name="lexstate64"></a><span style="font-weight: bold; text-decoration: underline;">state #64</span><br><br> +<a name="lexstate66"></a><span style="font-weight: bold; text-decoration: underline;">state #66</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate126">state #126</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate127">state #127</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate128">state #128</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate129">state #129</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate130">state #130</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate137">state #137</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate138">state #138</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate139">state #139</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate140">state #140</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate141">state #141</a></li> </ul> match:<br> <ul> @@ -906,14 +956,14 @@ <li> qname</li> </ul> -<a name="lexstate65"></a><span style="font-weight: bold; text-decoration: underline;">state #65</span><br><br> +<a name="lexstate67"></a><span style="font-weight: bold; text-decoration: underline;">state #67</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate131">state #131</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate132">state #132</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate133">state #133</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate134">state #134</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate135">state #135</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate142">state #142</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate143">state #143</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate144">state #144</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate145">state #145</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate146">state #146</a></li> </ul> match:<br> <ul> @@ -922,15 +972,15 @@ <li> qname</li> </ul> -<a name="lexstate66"></a><span style="font-weight: bold; text-decoration: underline;">state #66</span><br><br> +<a name="lexstate68"></a><span style="font-weight: bold; text-decoration: underline;">state #68</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate126">state #126</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate127">state #127</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate128">state #128</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate129">state #129</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate130">state #130</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate137">state #137</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate138">state #138</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate139">state #139</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate140">state #140</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate141">state #141</a></li> </ul> match:<br> <ul> @@ -941,15 +991,15 @@ <li> qname</li> </ul> -<a name="lexstate67"></a><span style="font-weight: bold; text-decoration: underline;">state #67</span><br><br> +<a name="lexstate69"></a><span style="font-weight: bold; text-decoration: underline;">state #69</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate126">state #126</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate127">state #127</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate128">state #128</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate129">state #129</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate130">state #130</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate137">state #137</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate138">state #138</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate139">state #139</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate140">state #140</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate141">state #141</a></li> </ul> match:<br> <ul> @@ -960,15 +1010,15 @@ <li> qname</li> </ul> -<a name="lexstate68"></a><span style="font-weight: bold; text-decoration: underline;">state #68</span><br><br> +<a name="lexstate70"></a><span style="font-weight: bold; text-decoration: underline;">state #70</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate126">state #126</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate127">state #127</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate128">state #128</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate129">state #129</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate130">state #130</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate137">state #137</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate138">state #138</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate139">state #139</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate140">state #140</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate141">state #141</a></li> </ul> match:<br> <ul> @@ -979,7 +1029,7 @@ <li> qname</li> </ul> -<a name="lexstate69"></a><span style="font-weight: bold; text-decoration: underline;">state #69</span><br><br> +<a name="lexstate71"></a><span style="font-weight: bold; text-decoration: underline;">state #71</span><br><br> goto by terminal:<br> <ul> </ul> @@ -988,15 +1038,15 @@ <li> double_caret</li> </ul> -<a name="lexstate70"></a><span style="font-weight: bold; text-decoration: underline;">state #70</span><br><br> +<a name="lexstate72"></a><span style="font-weight: bold; text-decoration: underline;">state #72</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate126">state #126</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate136">state #136</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate128">state #128</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate129">state #129</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate137">state #137</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate137">state #137</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate147">state #147</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate139">state #139</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate140">state #140</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate148">state #148</a></li> </ul> match:<br> <ul> @@ -1007,15 +1057,15 @@ <li> qname</li> </ul> -<a name="lexstate71"></a><span style="font-weight: bold; text-decoration: underline;">state #71</span><br><br> +<a name="lexstate73"></a><span style="font-weight: bold; text-decoration: underline;">state #73</span><br><br> goto by terminal:<br> <ul> -<li>by ['-' - '-'] goto <a href="#lexstate138">state #138</a></li> -<li>by ['0' - '9'] goto <a href="#lexstate127">state #127</a></li> -<li>by [':' - ':'] goto <a href="#lexstate65">state #65</a></li> -<li>by ['A' - 'Z'] goto <a href="#lexstate128">state #128</a></li> -<li>by ['_' - '_'] goto <a href="#lexstate129">state #129</a></li> -<li>by ['a' - 'z'] goto <a href="#lexstate139">state #139</a></li> +<li>by ['-' - '-'] goto <a href="#lexstate149">state #149</a></li> +<li>by ['0' - '9'] goto <a href="#lexstate138">state #138</a></li> +<li>by [':' - ':'] goto <a href="#lexstate67">state #67</a></li> +<li>by ['A' - 'Z'] goto <a href="#lexstate139">state #139</a></li> +<li>by ['_' - '_'] goto <a href="#lexstate140">state #140</a></li> +<li>by ['a' - 'z'] goto <a href="#lexstate150">state #150</a></li> </ul> match:<br> <ul> @@ -1028,17 +1078,17 @... [truncated message content] |
From: <luc...@us...> - 2010-03-23 06:17:54
|
Revision: 1338 http://eulergui.svn.sourceforge.net/eulergui/?rev=1338&view=rev Author: luc_peuvrier Date: 2010-03-23 06:17:47 +0000 (Tue, 23 Mar 2010) Log Message: ----------- added exception when resource not found Modified Paths: -------------- trunk/eulergui/src/main/parser4j/java/eulergui/parser/n3/impl/parser4j/gen/MainGenerateParserDataForN3.java Modified: trunk/eulergui/src/main/parser4j/java/eulergui/parser/n3/impl/parser4j/gen/MainGenerateParserDataForN3.java =================================================================== --- trunk/eulergui/src/main/parser4j/java/eulergui/parser/n3/impl/parser4j/gen/MainGenerateParserDataForN3.java 2010-03-23 05:00:31 UTC (rev 1337) +++ trunk/eulergui/src/main/parser4j/java/eulergui/parser/n3/impl/parser4j/gen/MainGenerateParserDataForN3.java 2010-03-23 06:17:47 UTC (rev 1338) @@ -57,22 +57,26 @@ } private void run() { - final ClassLoader classLoader = // getClass().getClassLoader(); - Thread.currentThread().getContextClassLoader(); - final URL url = classLoader.getResource(grammarInputResourceName); - final File grammarInputFile = new File(url.getFile()); - - final File htmlOutputFile = new File(outputFolder + "/" - + htmlOutputFileName); - final File txtLexGenLogOutputFile = new File(outputFolder + "/" - + txtLexGenLogOutputFileName); - final File grammarTreeTextFile = new File(outputFolder + "/" - + grammarTreeTextFileName); - final File grammarDefTreeTextFile = new File(outputFolder + "/" - + grammarDefTreeTextFileName); - final String matchMgrPackageName = GenMatchPackage.getPackageName(); - final File parserDataOutputFile = new File(parserDataOutputFullFileName); try { + final ClassLoader classLoader = // getClass().getClassLoader(); + Thread.currentThread().getContextClassLoader(); + final URL url = classLoader.getResource(grammarInputResourceName); + if (url == null) { + throw new GeneratorException("no url for \"" + + grammarInputResourceName + "\""); + } + final File grammarInputFile = new File(url.getFile()); + final File htmlOutputFile = new File(outputFolder + "/" + + htmlOutputFileName); + final File txtLexGenLogOutputFile = new File(outputFolder + "/" + + txtLexGenLogOutputFileName); + final File grammarTreeTextFile = new File(outputFolder + "/" + + grammarTreeTextFileName); + final File grammarDefTreeTextFile = new File(outputFolder + "/" + + grammarDefTreeTextFileName); + final String matchMgrPackageName = GenMatchPackage.getPackageName(); + final File parserDataOutputFile = new File( + parserDataOutputFullFileName); final ParseResult parseResult = parserDataGenerator.generate(url .toString(), grammarInputFile, htmlOutputFile, txtLexGenLogOutputFile, parserDataOutputFile, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2010-03-23 05:00:42
|
Revision: 1337 http://eulergui.svn.sourceforge.net/eulergui/?rev=1337&view=rev Author: luc_peuvrier Date: 2010-03-23 05:00:31 +0000 (Tue, 23 Mar 2010) Log Message: ----------- added line/colomn/filename to parse node data Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/AbstractStatementMemberType.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/BarNameListData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/BlankNodeData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/LiteralValueData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/ObjectListData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/PropertyListData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/StatementData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/SubjectOrObjectData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/SymbolListData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/UriValueData.java trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/VerbData.java Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/AbstractStatementMemberType.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/AbstractStatementMemberType.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/AbstractStatementMemberType.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -1,11 +1,14 @@ package eulergui.parser.n3.impl.parser4j.entity.data; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; + /** * * @author luc peuvrier * */ -public abstract class AbstractStatementMemberType { +public abstract class AbstractStatementMemberType extends + AbstractParserNodeData { protected EnumStatementMemberType type; Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/BarNameListData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/BarNameListData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/BarNameListData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -1,13 +1,13 @@ package eulergui.parser.n3.impl.parser4j.entity.data; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; /** * * @author luc peuvrier * */ -public class BarNameListData implements IParseNodeData { +public class BarNameListData extends AbstractParserNodeData { private final String barName; Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/BlankNodeData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/BlankNodeData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/BlankNodeData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -1,14 +1,14 @@ package eulergui.parser.n3.impl.parser4j.entity.data; import net.sf.parser4j.parser.entity.parsenode.IParseNode; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; /** * * @author luc peuvrier * */ -public class BlankNodeData implements IParseNodeData, Comparable<BlankNodeData> { +public class BlankNodeData extends AbstractParserNodeData implements Comparable<BlankNodeData> { private final String identifier; Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/LiteralValueData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/LiteralValueData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/LiteralValueData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -1,13 +1,13 @@ package eulergui.parser.n3.impl.parser4j.entity.data; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; /** * * @author luc peuvrier * */ -public class LiteralValueData implements IParseNodeData { +public class LiteralValueData extends AbstractParserNodeData { /** TODO constant pool for xml schemas, see DatatypeHelper; * this is not complete, see Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/ObjectListData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/ObjectListData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/ObjectListData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -1,13 +1,13 @@ package eulergui.parser.n3.impl.parser4j.entity.data; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; /** * * @author luc peuvrier * */ -public class ObjectListData implements IParseNodeData { +public class ObjectListData extends AbstractParserNodeData { private final ObjectListData next; Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/PropertyListData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/PropertyListData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/PropertyListData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -2,14 +2,14 @@ import java.net.URISyntaxException; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; /** * * @author luc peuvrier * */ -public class PropertyListData implements IParseNodeData { +public class PropertyListData extends AbstractParserNodeData { private final PropertyListData next; Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/StatementData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/StatementData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/StatementData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -4,14 +4,14 @@ import java.util.TreeSet; import net.sf.parser4j.parser.entity.parsenode.IParseNode; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; /** * * @author luc peuvrier * */ -public class StatementData implements IParseNodeData { +public class StatementData extends AbstractParserNodeData { private StatementEltData first; Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/SubjectOrObjectData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/SubjectOrObjectData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/SubjectOrObjectData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -7,8 +7,7 @@ * @author luc peuvrier * */ -public class SubjectOrObjectData extends AbstractStatementMemberType implements - IParseNodeData { +public class SubjectOrObjectData extends AbstractStatementMemberType { private final UriValueData uriValue; Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/SymbolListData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/SymbolListData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/SymbolListData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -1,13 +1,13 @@ package eulergui.parser.n3.impl.parser4j.entity.data; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; /** * * @author luc peuvrier * */ -public class SymbolListData implements IParseNodeData { +public class SymbolListData extends AbstractParserNodeData { private final SymbolListData next; Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/UriValueData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/UriValueData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/UriValueData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -2,7 +2,7 @@ import java.net.URISyntaxException; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.data.AbstractParserNodeData; import eulergui.parser.n3.impl.parser4j.service.util.UriUtil; /** @@ -10,7 +10,8 @@ * @author luc peuvrier * */ -public class UriValueData implements IParseNodeData, Comparable<UriValueData> { +public class UriValueData extends AbstractParserNodeData implements + Comparable<UriValueData> { private static final UriUtil uriUtil = UriUtil.getInstance(); Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/VerbData.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/VerbData.java 2010-03-22 12:34:49 UTC (rev 1336) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/data/VerbData.java 2010-03-23 05:00:31 UTC (rev 1337) @@ -2,15 +2,12 @@ import java.net.URISyntaxException; -import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; - /** * * @author luc peuvrier * */ -public class VerbData extends AbstractStatementMemberType implements - IParseNodeData { +public class VerbData extends AbstractStatementMemberType { private final UriValueData uriValueData; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2010-03-22 16:16:24
|
Feature Requests item #2968747, was opened at 2010-03-11 16:00 Message generated for change (Settings changed) made by jmvanel You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1104479&aid=2968747&group_id=237733 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: iamlolive (iamlolive) >Assigned to: iamlolive (iamlolive) Summary: Error in parsing should appear in the GUI Initial Comment: When loading a N3Source, if the parsing fails, an error sign should appear left to the file name (with a tooltip corresponding to the error message). Editing the source would automatically set the caret at the error line. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1104479&aid=2968747&group_id=237733 |
From: SourceForge.net <no...@so...> - 2010-03-22 16:09:59
|
Feature Requests item #2969415, was opened at 2010-03-12 14:14 Message generated for change (Settings changed) made by jmvanel You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1104479&aid=2969415&group_id=237733 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Drools Group: None Status: Open Priority: 6 Private: No Submitted By: Jean-Marc Vanel (jmvanel) >Assigned to: iamlolive (iamlolive) Summary: use insertLogical() instead of insert() Initial Comment: We should use insertLogical() everywhere instead of insert() in the N3 --> Drools translation . This will pave the way for : - retracting windows and forms by the rule engine - temporarily asserting user data subject to validation rules, so that unvalidated stuff gets whiped out by the engine. Need to verify that the executation times are inded comparable , if not inferior as Mark says . dialog with Mark Protor good evening ! I have a question about insertLogical() ; I am tempted to use it all the time, but I wonder how much will I have to pay in terms of performances <conan> not too much <conan> if you are using trunk <conan> it's even more efficient there ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1104479&aid=2969415&group_id=237733 |
From: <jm...@us...> - 2010-03-22 12:34:56
|
Revision: 1336 http://eulergui.svn.sourceforge.net/eulergui/?rev=1336&view=rev Author: jmvanel Date: 2010-03-22 12:34:49 +0000 (Mon, 22 Mar 2010) Log Message: ----------- update doc.: n3_rules_good_practices.html, taches, documentation.html : EulerGUI should flag non-monotonic (non OWA) rules and documents containing such rules. Modified Paths: -------------- trunk/eulergui/html/documentation.html trunk/eulergui/html/n3_rules_good_practices.html trunk/eulergui/html/taches.html Property Changed: ---------------- trunk/eulergui/html/n3_rules_good_practices.html Modified: trunk/eulergui/html/documentation.html =================================================================== --- trunk/eulergui/html/documentation.html 2010-03-21 12:37:18 UTC (rev 1335) +++ trunk/eulergui/html/documentation.html 2010-03-22 12:34:49 UTC (rev 1336) @@ -11,7 +11,7 @@ <body> <p style="text-align:center;font-size: 20pt">Euler GUI Manual</p> -<p>© Jean-Marc Vanel - $Date: 2010-03-19$ - <a +<p>© Jean-Marc Vanel - $Date: 2010-03-21$ - <a href="http://eulergui.sourceforge.net/documentation.html">a view possibly older in sync. with EulerGUI release </a> - <a href="http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html">Latest @@ -2248,7 +2248,8 @@ <h2 id="TODO">Missing features</h2> <p>Partly prioritized, mostly historical, with older ideas below.</p> -<pre>- an N3 file with fileencoding=utf-8, fileencodings=ucs-bom,utf-8,default,latin1 +<pre>- EulerGUI should flag non-monotonic (non OWA) rules and documents containing such rules. +- an N3 file with fileencoding=utf-8, fileencodings=ucs-bom,utf-8,default,latin1 is not parsed right when it contains a non-ASCII character - add to project ontologies imported by owl:import - refresh all conversions to N3 (useful if modifications in e.g. Protégé) Modified: trunk/eulergui/html/n3_rules_good_practices.html =================================================================== --- trunk/eulergui/html/n3_rules_good_practices.html 2010-03-21 12:37:18 UTC (rev 1335) +++ trunk/eulergui/html/n3_rules_good_practices.html 2010-03-22 12:34:49 UTC (rev 1336) @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="iso-8859-1"?> +<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> + <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>N3 rules good practices</title> <style type="text/css"> @@ -16,14 +16,14 @@ <p style="font-size: 20pt">N3 rules: good practices, design patterns, refactoring</p> -<p>\xA9 Jean-Marc Vanel - $Date$</p> +<p>© Jean-Marc Vanel - $Date$</p> <p>TOC</p> <div class="toc"> <ul> <li><a href="#L470">Introduction</a></li> - <li><a href="#L587">The limitations of RDF</a> + <li><a href="#L587">The limitations of RDF</a> <ul> <li><a href="#L930">Open world assumption</a></li> <li><a href="#L1262">Monotonicity</a></li> @@ -31,27 +31,27 @@ </li> <li><a href="#L593">The limitations of N3 logic</a></li> <li><a href="#L944">Using OWL ontologies</a></li> - <li><a href="#L387">Variables patterns</a> + <li><a href="#L387">Variables patterns</a> <ul> <li><a href="#L398">Quantification</a></li> <li><a href="#L420">Multiple occurences</a></li> </ul> </li> - <li><a href="#L180">Design patterns</a> + <li><a href="#L180">Design patterns</a> <ul> <li><a href="#L432">Annotate the existing objects</a></li> <li><a href="#L445">Create new objects</a></li> </ul> </li> <li><a href="#L557">Data structures</a></li> - <li><a href="#L255">Lists variants</a> + <li><a href="#L255">Lists variants</a> <ul> <li><a href="#L215">Lists OWL style</a></li> <li><a href="#L303">Cloning a list</a></li> <li><a href="#L170">Accumulating by recursion</a></li> </ul> </li> - <li><a href="#L26">N3 refactorings</a> + <li><a href="#L26">N3 refactorings</a> <ul> <li><a href="#L135">Extract part of antecedent</a></li> </ul> @@ -72,7 +72,7 @@ <p><a href="http://www.google.fr/search?q=SWRL+design+pattern">Google search SWRL+design+pattern</a></p> -<p><a href="http://protege.cim3.net/cgi-bin/wiki.pl?SWRLLanguageFAQ">Prot\xE9g\xE9 +<p><a href="http://protege.cim3.net/cgi-bin/wiki.pl?SWRLLanguageFAQ">Protégé wiki SWRL Language FAQ</a></p> <p></p> @@ -107,7 +107,7 @@ language, there is no limitation. Everything that can be expressed in XML, XMI, SQL, JSON, can also be expressed in RDF and N3. Moreover, RDF is by design adapted to Internet: URI are globally unique identifiers that can be -dererenced, and it has SWRL for query language and protocol.</p> +dereferenced, and it has SWRL for query language and protocol.</p> <p>Then the principles of the Semantic Web imply the Open World Assumption, which is a necessary limitation for the huge and ever changing Web.</p> @@ -116,9 +116,9 @@ href="http://www.betaversion.org/~stefano/linotype/news/91/">Open world assumption</a></h3> -<p>The closed world assumption implies that everything we don’t know is -false, while the open world assumption states that everything we don’t -know is undefined. </p> +<p>The closed world assumption implies that everything we don’t know is +false, while the open world assumption states that everything we don’t know +is undefined. </p> <p>The closed world is the point of vue of all databases, except RDF databases. Related to closed world assumption, there is a the unique name assumption, @@ -145,6 +145,16 @@ form of negation; see the paragraph "Motivation" of <a href="http://www.w3.org/DesignIssues/N3Logic">DesignIssues / N3Logic</a> .</p> +<h2>Rules languages</h2> + +<p>http://www.jessrules.com/jess/index.shtml</p> + +<p>http://www.jessrules.com/jess/docs/71/rules.html#rules</p> + +<p>http://www.w3.org/Submission/SWRL</p> + +<p>http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTutorialESWC2010#nidB64</p> + <h2 id="L593">The limitations of N3 logic</h2> <p>The original N3 logic (like SWRL) follows strictly the principles of the @@ -208,20 +218,50 @@ <h2 id="L557">Data structures</h2> -<p>No sets ? Why ? Because ordinary RDF properties act as sets.</p> +<p>No sets ? Why ? Because an ordinary RDF property <code>myProp</code> plus a +resource <code>R</code> defines the set of ?V such that :</p> -<p>RDF is a bunch of associative arrays (called maps in Java and C++). ????</p> +<p><code>R myProp ?V .</code></p> +<p>RDF is a bunch of associative arrays (called maps in Java and C++). More +precisely each resource in subject position can be considered as an associative +array whose keys are the properties and whose values are the objects.</p> + <h2 id="L255">Lists variants</h2> -<p>RDF lists, OWL, linked list.</p> +<p>We are dealing here with ordered lists. As noted before, non-ordered lists +(sets) are just expressible with ordinary RDF statements.</p> -<p>transitive properties</p> +<p>In RDF, there is a special pre-defined class rdf:List, with two properties +<code>rdf:first</code> and <code>rdf:rest</code>, and a resource +<code>rdf:nil</code> to terminate the list. But in fact, this is just the +simplest way to define a linked list with a graph language like RDF. Instead of +rdf:rest, any domain specific property can be used to define a linked list.</p> +<h3>Transitive properties</h3> + +<p>Transitive properties are frequent for relations like: physical containment, +ordering relationship, entreprise hierarchy, ancestor relation, ... They are +typically modelized by an OWL Transitive property.</p> + +<p>???</p> + <h3 id="L215">Lists OWL style</h3> -<p>????</p> +<p>When using a plain domain specific property to define a linked list, there +is </p> +<p></p> +<pre>class List hasNext only List + class EmptyList hasContents max 0, hasNext max 0 + +object property hasContents functional + +object property hasRest transitive + object property hasNext functional</pre> + +<p></p> + <p>There is a paper describing the list pattern in OWL:</p> <p>Drummond, N., Rector, A.L., Stevens, R., Moulton, G., Horridge, M., Wang, H, @@ -233,6 +273,20 @@ <p></p> +<p>To use this OWL list ontology, one must import the ontology from the generic +URL:</p> + +<p><a +href="http://www.co-ode.org/ontologies/lists/list.owl">http://www.co-ode.org/ontologies/lists/list.owl</a></p> + +<p></p> + +<p>and particularize the class OWLList as a list of cities, by two +owl:Restrictions , like this (in Manchester OWL syntax) :</p> +<pre><code>Itinerary equivalentTo</code><code> hasContents only City</code><code> and OWLList</code><code> and isFollowedBy only Itinerary</code></pre> + +<p></p> + <h3 id="L303">Cloning a list</h3> <p>Here is an example with user specific :first and :rest properties , <a Property changes on: trunk/eulergui/html/n3_rules_good_practices.html ___________________________________________________________________ Added: svn:keywords + Date Modified: trunk/eulergui/html/taches.html =================================================================== --- trunk/eulergui/html/taches.html 2010-03-21 12:37:18 UTC (rev 1335) +++ trunk/eulergui/html/taches.html 2010-03-22 12:34:49 UTC (rev 1336) @@ -15,22 +15,16 @@ </head> <body> -<p>Taches EulerGUI</p> +<p><span style="font-size: 20pt">Taches EulerGUI</span></p> -<p></p> - <p>Conception : points \xE0 voir:</p> -<p></p> - <p>plusieurs WM ou une seule ? a priori une seule</p> <p></p> <h2>1.1 ficher de donn\xE9es et de configuration en N3</h2> -<p></p> - <h2>Validation des donn\xE9es (contraintes)</h2> <p>Prendre en compte la validation des donn\xE9es (contraintes) : faut-il une @@ -73,6 +67,12 @@ <td><strong>Commentaire</strong></td> </tr> <tr> + <td>log et fen\xEAtres de messages</td> + <td></td> + <td>voir si un IDE ne fait pas automatiquement une partie du travail; + ajouter un espace messages</td> + </tr> + <tr> <td>I18N</td> <td></td> <td>dans Java : pas de pb; dans N3: 1. entrer les valeurs de xml:lang en @@ -88,10 +88,11 @@ <td>FAIT, \xE0 documenter</td> </tr> <tr> - <td>log et fen\xEAtres de messages</td> + <td>\xE9crire un "script" en Java : lancer les cas de d\xE9mo : FaceBook, ceux + du manuel D\xE9ductions</td> <td></td> - <td>voir si un IDE ne fait pas automatiquement une partie du travail; - ajouter un espace messages</td> + <td>il serait bien de g\xE9n\xE9rer une config. JNLP \xE0 partir de la config. + Maven.</td> </tr> <tr> <td>catalogue de XML Schema en N3</td> @@ -99,44 +100,54 @@ <td>se mettre d'accord sur le vocabulaire RDF</td> </tr> <tr> - <td>\xE9crire un "script" en Java : lancer les cas de d\xE9mo : FaceBook, ceux - du manuel D\xE9ductions</td> - <td></td> - <td>il serait bien de g\xE9n\xE9rer une config. JNLP \xE0 partir de la config. - Maven.</td> - </tr> - <tr> <td>Utiliser Jython</td> <td></td> - <td></td> + <td>probl\xE8mes avec rdflib</td> </tr> <tr> <td>1.1 avoir un ficher de donn\xE9es et de configuration en N3 ( actuellement, la honte, c'est du XMLEncoder ) ;</td> <td></td> - <td>refactorer Project pour mettre toutes les donn\xE9es dans une KB.</td> + <td>on a d'aboord envisag\xE9 de refactorer Project pour mettre toutes les + donn\xE9es dans une KB; + + <p>le proto. actuel garde la structure de donn\xE9es Java, mais ajoute un + listener qui remplit la KB, cf</p> + + <p><a href="project_ontology.html">Proposal for a new ontology and N3 + format for RDF + OWL + rules projects</a></p> + </td> </tr> <tr> <td>1.2 pouvoir exporter les mini-application avec formulaires g\xE9n\xE9r\xE9es (actuellement elles ne tournent que dans l'IDE )</td> <td></td> - <td>bla??????????</td> + <td>en fait on n'a pas besoin dans un premier temps d'extraire les + classes n\xE9cessaires (runtime Drools, instanciateur, etc) , on peut + utiliser le gros jar de EulerGUI; + + <p>ce serait juste un argument <code>--launch</code> qui lancer + l'application g\xE9n\xE9r\xE9e .</p> + </td> </tr> <tr> <td>1.3 am\xE9liorer ces mini-application, les rendres plus configurables</td> <td></td> - <td>??????????? hyperlien , cf Prot\xE9g\xE9 Forms - - <p>sans en faire trop car c'est du boulot ( mais on est au coeur de la - d\xE9marche qui est de d\xE9duire l'application, et qui permettra \xE0 terme de - g\xE9n\xE9rer une application telle que EulerGUI )</p> + <td><p>sans en faire trop car c'est du boulot ( mais on est au coeur de + la d\xE9marche qui est de d\xE9duire l'application, et qui permettra \xE0 terme + de g\xE9n\xE9rer une application telle que EulerGUI )</p> </td> </tr> <tr> <td>int\xE9grer le composant form de Prot\xE9g\xE9 3</td> <td></td> - <td>: qui l'a fait ? D\xE9pendant de la vieille API CLIPS </td> + <td>cf <a + href="http://protegewiki.stanford.edu/index.php/UseProtegeFormsInApplications">Using + Protege Forms in Other Applications</a> + + <p>: qui l'a fait ? D\xE9pendant de la vieille API CLIPS </p> + </td> </tr> <tr> <td>1.4 embarquer un moteur de r\xE8gle dans l'application EulerGUI @@ -151,20 +162,33 @@ savoir que si le projet inclut certains URL, alors c'est un projet d'IHM, et alors il faudra lancer certains outils; d\xE9corer les sources du projet en fonction de leur contenu, statut, statistiques et - m\xE9triques, historique, etc</td> + m\xE9triques, historique, etc + + <p>cf <a href="project_ontology.html">Proposal for a new ontology and + N3 format for RDF + OWL + rules projects</a></p> + + <p></p> + </td> </tr> <tr> <td>1.4.1 aller vers un EulerGUI autog\xE9n\xE9r\xE9</td> <td></td> - <td>pouvoir int\xE9grer commod\xE9ment du code Java existant</td> + <td>d\xE9j\xE0 pouvoir int\xE9grer commod\xE9ment du code Java existant et des r\xE8gles + dans le EulerGUI existant</td> </tr> <tr> <td>1.5 int\xE9grer dans la cha\xEEne l'outil Attempto Ace View, pour pouvoir entrer les mod\xE8les, r\xE8gles, et donn\xE9es en Anglais Controll\xE9</td> <td></td> - <td>cela implique: soit de traduire le SWRL en logique N3, soit - d'utiliser Pellet + API Prot\xE9g\xE9 / OWL API (qui prennent du SWRL) \xE0 la - place du moteur Drools / N3 de EulerGUI</td> + <td>cela implique: + <ul> + <li>soit de traduire le SWRL en logique N3, </li> + <li>soit d'adapter le code Prolog existant qui g\xE9n\xE9rer du + OWL+SWRL</li> + <li>soit d'utiliser Pellet + API Prot\xE9g\xE9 / OWL API (qui prennent du + SWRL) \xE0 la place du moteur Drools / N3 de EulerGUI</li> + </ul> + </td> </tr> <tr> <td>1.6 \xE9diteur N3 int\xE9gr\xE9 en Java: ajouter diverses facilit\xE9s : Control @@ -203,7 +227,12 @@ propri\xE9t\xE9s et classes non d\xE9clar\xE9es par ailleurs</p> </td> <td></td> - <td></td> + <td>une base de r\xE8gles existe d\xE9j\xE0, qui avertit des propri\xE9t\xE9s non + d\xE9clar\xE9es: + + <p>voir <a + href="deductions/n3_new/model-rules-coherence.n3p">deductions/n3_new/model-rules-coherence.n3p</a></p> + </td> </tr> <tr> <td>1.9 requ\xEAtes param\xE9tr\xE9es (alias query en Drools)</td> @@ -349,11 +378,9 @@ </tr> </tbody> </table> -<ul> - <li></li> - <li></li> -</ul> <p></p> + +<p></p> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm...@us...> - 2010-03-21 12:37:26
|
Revision: 1335 http://eulergui.svn.sourceforge.net/eulergui/?rev=1335&view=rev Author: jmvanel Date: 2010-03-21 12:37:18 +0000 (Sun, 21 Mar 2010) Log Message: ----------- n3_rules_good_practices.html : WIP Modified Paths: -------------- trunk/eulergui/html/n3_rules_good_practices.html Modified: trunk/eulergui/html/n3_rules_good_practices.html =================================================================== --- trunk/eulergui/html/n3_rules_good_practices.html 2010-03-19 20:34:52 UTC (rev 1334) +++ trunk/eulergui/html/n3_rules_good_practices.html 2010-03-21 12:37:18 UTC (rev 1335) @@ -5,13 +5,329 @@ <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>N3 rules good practices</title> + <style type="text/css"> + + .CREATION {color:#09b409; +font-weight:bold; }</style> <meta name="generator" content="Amaya, see http://www.w3.org/Amaya/" /> </head> <body> +<p style="font-size: 20pt">N3 rules: good practices, design patterns, +refactoring</p> -<h2>N3 refactoring: extract part of antecedent</h2> +<p>\xA9 Jean-Marc Vanel - $Date$</p> +<p>TOC</p> + +<div class="toc"> +<ul> + <li><a href="#L470">Introduction</a></li> + <li><a href="#L587">The limitations of RDF</a> + <ul> + <li><a href="#L930">Open world assumption</a></li> + <li><a href="#L1262">Monotonicity</a></li> + </ul> + </li> + <li><a href="#L593">The limitations of N3 logic</a></li> + <li><a href="#L944">Using OWL ontologies</a></li> + <li><a href="#L387">Variables patterns</a> + <ul> + <li><a href="#L398">Quantification</a></li> + <li><a href="#L420">Multiple occurences</a></li> + </ul> + </li> + <li><a href="#L180">Design patterns</a> + <ul> + <li><a href="#L432">Annotate the existing objects</a></li> + <li><a href="#L445">Create new objects</a></li> + </ul> + </li> + <li><a href="#L557">Data structures</a></li> + <li><a href="#L255">Lists variants</a> + <ul> + <li><a href="#L215">Lists OWL style</a></li> + <li><a href="#L303">Cloning a list</a></li> + <li><a href="#L170">Accumulating by recursion</a></li> + </ul> + </li> + <li><a href="#L26">N3 refactorings</a> + <ul> + <li><a href="#L135">Extract part of antecedent</a></li> + </ul> + </li> +</ul> +</div> + +<h2 id="L470">Introduction</h2> + +<p>This is a tutorial on writing N3 rules, and various design patterns.</p> + +<p>It will address issues of business rules, transformations, validation, +processing lists, etc..</p> + +<p>There is little material directly on the N3 rules, but there are things +about other rule languages: SWRL, Drools, etc..</p> + +<p><a href="http://www.google.fr/search?q=SWRL+design+pattern">Google search +SWRL+design+pattern</a></p> + +<p><a href="http://protege.cim3.net/cgi-bin/wiki.pl?SWRLLanguageFAQ">Prot\xE9g\xE9 +wiki SWRL Language FAQ</a></p> + +<p></p> + +<p>http://en.wikipedia.org/wiki/Graph_rewriting</p> + +<p>http://rewriting.loria.fr/</p> + +<p>http://en.wikipedia.org/wiki/Rewriting</p> + +<p></p> + +<p>Throughout this document, we will put variables corresponding to resource +(object) creation, that is existentially qualified variables, in <span +class="CREATION">bold green</span>.</p> + +<p><strong>Abreviations</strong></p> + +<p>KB == Knowledge Base</p> + +<p>LSH == Left Hand Side (a.k.a. antecedent) </p> + +<p>RSH == Right Hand Side (a.k.a. consequent) </p> + +<p></p> + +<h2 id="L587">The limitations of RDF</h2> + +<p>The whole point of this paragraph is that there is really no limitation.</p> + +<p>First let's say that in terms of expressive power for an object graph data +language, there is no limitation. Everything that can be expressed in XML, XMI, +SQL, JSON, can also be expressed in RDF and N3. Moreover, RDF is by design +adapted to Internet: URI are globally unique identifiers that can be +dererenced, and it has SWRL for query language and protocol.</p> + +<p>Then the principles of the Semantic Web imply the Open World Assumption, +which is a necessary limitation for the huge and ever changing Web.</p> + +<h3 id="L930"><a +href="http://www.betaversion.org/~stefano/linotype/news/91/">Open world +assumption</a></h3> + +<p>The closed world assumption implies that everything we don’t know is +false, while the open world assumption states that everything we don’t +know is undefined. </p> + +<p>The closed world is the point of vue of all databases, except RDF databases. +Related to closed world assumption, there is a the unique name assumption, +which mean that a concept has a unique string representation (URI in RDF case); +or converselly two different string representations are necessarily distinct +concepts.</p> + +<p>The semantic web, N3 logic, and OWL, are based on Open World Assumption. But +we will see later that there are extension builtins predicates that allow some +features of closed world.</p> + +<h3 id="L1262">Monotonicity</h3> + +<p>Monotonicity means that learning a new piece of (non contradictory) +knowledge cannot reduce the set of what is known ( taken from <a +href="http://en.wikipedia.org/wiki/Non-monotonic_logic">wikipedia.org / +Non-monotonic_logic</a> ). This is closely related to Open World Assumption.</p> + +<p>A monotonic logic forbids such things as default reasoning ( birds fly +except ostriches ).</p> + +<p>For the same reason, global negation is forbiden ( "no Papuan pilots an +airplane" ). The authors of N3 logic invented "scoped negation" as a weaker +form of negation; see the paragraph "Motivation" of <a +href="http://www.w3.org/DesignIssues/N3Logic">DesignIssues / N3Logic</a> .</p> + +<h2 id="L593">The limitations of N3 logic</h2> + +<p>The original N3 logic (like SWRL) follows strictly the principles of the +Semantic Web: Open World Assumption, no Unique Name Assumption, and +monotonicity.</p> + +<p>However, the orignal CWM, Euler and Drools/N3 engines have builtins +predicates that allow some features of closed world:</p> +<ul> + <li><code>log:equalTo</code> and <code>log:notEqualTo</code> allows a form of + Unique Name Assumption</li> + <li><code>e:findall</code> allows to by-pass monotonicity; example: find all + married couples with more than 1 child: <a + href="../test/findall2.n3">test/findall2.n3</a></li> +</ul> + +<p>Breaking monotonicity is not a problem if one is aware of the underlying +principles. In this respect it is not recommanded to add to the current KB the +consequences of non-monotonic rules. EulerGUI should flag rules and documents +containing such rules.</p> + +<h2 id="L944">Using OWL ontologies</h2> + +<p>add the revelant rules from Euler project. </p> + +<p>???</p> + +<h2 id="L387">Variables patterns</h2> + +<h3 id="L398">Quantification</h3> + +<p>existential, universal</p> + +<p>variable binding</p> + +<p>???</p> + +<h3 id="L420">Multiple occurences</h3> + +<p>Multiple occurences in LHS means adding constraints, which diminishes the +set of matching statements for the rule.</p> + +<p>Multiple occurences in RHS means adding new statements to the KB.</p> + +<h2 id="L180">Design patterns</h2> + +<h3 id="L432">Annotate the existing objects</h3> + +<p>This is the simplest pattern, and the most efficient on all engines. It is +particuliar adapted to problems with a 1 to 1 correspondence between the +asserted objects and the inferred objects. It is opposed to the following +pattern "Create new objects".</p> + +<h3 id="L445">Create new objects</h3> + +<p>keep track</p> + +<p>often not possible with Euler engine</p> + +<p>???</p> + +<h2 id="L557">Data structures</h2> + +<p>No sets ? Why ? Because ordinary RDF properties act as sets.</p> + +<p>RDF is a bunch of associative arrays (called maps in Java and C++). ????</p> + +<h2 id="L255">Lists variants</h2> + +<p>RDF lists, OWL, linked list.</p> + +<p>transitive properties</p> + +<h3 id="L215">Lists OWL style</h3> + +<p>????</p> + +<p>There is a paper describing the list pattern in OWL:</p> + +<p>Drummond, N., Rector, A.L., Stevens, R., Moulton, G., Horridge, M., Wang, H, +Seidenberg, J. Putting OWL in Order: Patterns for Sequences in OWL, in 2nd OWL +Experiences and Directions Workshop, Athens, GA</p> + +<p><a +href="http://www.webont.org/owled/2006/acceptedLong/submission_12.pdf">http://www.webont.org/owled/2006/acceptedLong/submission_12.pdf</a></p> + +<p></p> + +<h3 id="L303">Cloning a list</h3> + +<p>Here is an example with user specific :first and :rest properties , <a +href="../examples/clone-list-forward.n3">clone-list-forward.n3</a>. It clones +the list in the forward direction.</p> +<pre>{ ?L :first ?F . + ?L :rest ?R . + ?LC :clone_of ?L . +} => { + ?LC :first ?F . + ?LC :rest <strong><span class="CREATION">?<span style="font-weight:bold;"></span>RC</span></strong> . + <span class="CREATION">?RC</span> :clone_of ?R . +} .</pre> + +<p>It must be provided with a start statement, e.g.:</p> +<pre>:newNode :clone_of :existingNode .</pre> + +<p></p> + +<p>Due to limitations in Euler/Eye engine, it is not possible to generate +rdf:first and rdf:rest properties. However, this is possible </p> + +<p>with Drools/N3 engine. With both engines, it is possible to to clone an RDF +list using a rule similar to the above, matching rdf:first and rdf:rest +properties in the LSH : <a +href="../examples/clone-rdf-list-forward.n3">clone-rdf-list-forward.n3</a> .</p> + +<p></p> + +<p>Here is another example with user specific :first and :rest properties, <a +href="../examples/clone-list.n3">clone-list.n3</a>. It clones the list in the +"backward" direction, that is starting from the end.</p> +<pre>{ # initial condition + ?L :first ?F . + ?L :rest :nil . +} => { + <span class="CREATION">?LC</span> :first ?F . + <span class="CREATION">?LC</span> :rest_clone :nil . + <span class="CREATION">?LC</span> :clone_of ?L . +} . +{ # recursion + ?L :first ?F . + ?L :rest ?R . + ?RC :clone_of ?R . +} => { + ?LC :first ?F . + ?LC :rest_clone ?RC . + ?LC :clone_of ?L . +} .</pre> + +<p></p> + +<p>Note the difference in semantics with the preceding example, where the +cloning was triggered by a "start statement". Here, whenever there is a list +made with the :first and :rest properties, a clone is created.</p> + +<p></p> + +<p>These examples are just design patterns. I real life, for cloning to be +useful, domain logic will be added, like:</p> +<ul> + <li>filtering some items in the list (e.g. creating a list of good customers + from a list of customers)</li> + <li>assigning some properties to the cloned nodes (e.g. associating a sales + representative to each customer in the list)</li> +</ul> + +<p></p> + +<h3 id="L170">Accumulating by recursion</h3> + +<p>Itinerary is a linked list, and each Itinerary is also a step.</p> +<pre>{ + ?I a itin:Itinerary . + ?I itin:distance ?D . + ?I list:hasNext ?N . + ?N :totalDistance ?NT . + (?D ?NT) math:sum ?T . +} => { + ?I :totalDistance ?T . +} . + +{ + ?I a itin:Itinerary . + ?I list:hasNext itin:emptyItinerary . +} => { + ?I :totalDistance 0.0 . +} .</pre> + +<p></p> + +<h2 id="L26">N3 refactorings</h2> + +<h3 id="L135">Extract part of antecedent</h3> + <p><strong>Motivation</strong></p> <p>Suppose the original rule OR is writen as :</p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm...@us...> - 2010-03-19 20:34:59
|
Revision: 1334 http://eulergui.svn.sourceforge.net/eulergui/?rev=1334&view=rev Author: jmvanel Date: 2010-03-19 20:34:52 +0000 (Fri, 19 Mar 2010) Log Message: ----------- remove compilation errors; now tests pass Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/gui/controller/ApplicationKB.java Removed Paths: ------------- trunk/eulergui/src/main/java/eulergui/gui/view/N3TokenMarker.java Modified: trunk/eulergui/src/main/java/eulergui/gui/controller/ApplicationKB.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/controller/ApplicationKB.java 2010-03-19 09:52:50 UTC (rev 1333) +++ trunk/eulergui/src/main/java/eulergui/gui/controller/ApplicationKB.java 2010-03-19 20:34:52 UTC (rev 1334) @@ -15,7 +15,7 @@ private static ApplicationKB instance_; - public static ApplicationKB instance() throws ParserException { + public static ApplicationKB instance() { if( instance_ == null ) { instance_ = new ApplicationKB(); } @@ -24,7 +24,7 @@ private TripleStoreDrools tripleStore; - private ApplicationKB() throws ParserException { + private ApplicationKB() { Project project = new Project(); URL url = getClass().getResource("project.owl.n3"); @@ -37,7 +37,12 @@ // compile rules: project.compileSearches(); - project.prepareDrools(); + try { + project.prepareDrools(); + } catch (ParserException e) { + // Auto-generated catch block + e.printStackTrace(); + } project.getTranslator().copyN3factsToDrools(); tripleStore = TripleStoreDrools.createFromProject(project); } Deleted: trunk/eulergui/src/main/java/eulergui/gui/view/N3TokenMarker.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/view/N3TokenMarker.java 2010-03-19 09:52:50 UTC (rev 1333) +++ trunk/eulergui/src/main/java/eulergui/gui/view/N3TokenMarker.java 2010-03-19 20:34:52 UTC (rev 1334) @@ -1,24 +0,0 @@ -/** - * - */ -package eulergui.gui.view; - -import org.syntax.jedit.KeywordMap; -import org.syntax.jedit.tokenmarker.ShellScriptTokenMarker; -import org.syntax.jedit.tokenmarker.Token; - -class N3TokenMarker extends -// CTokenMarker - ShellScriptTokenMarker - { - private static KeywordMap n3Keywords; - public static KeywordMap getKeywords() { - if(n3Keywords == null) { - n3Keywords = new KeywordMap(false); - n3Keywords.add("@prefix",Token.KEYWORD3); - n3Keywords.add("a",Token.KEYWORD2); - n3Keywords.add("=>",Token.KEYWORD2); - } - return n3Keywords; - } - } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm...@us...> - 2010-03-19 09:52:57
|
Revision: 1333 http://eulergui.svn.sourceforge.net/eulergui/?rev=1333&view=rev Author: jmvanel Date: 2010-03-19 09:52:50 +0000 (Fri, 19 Mar 2010) Log Message: ----------- documentation.html : add details on: - Finding ontologies on the Web - Maven: try something locally Modified Paths: -------------- trunk/eulergui/html/documentation.html Modified: trunk/eulergui/html/documentation.html =================================================================== --- trunk/eulergui/html/documentation.html 2010-03-19 09:50:16 UTC (rev 1332) +++ trunk/eulergui/html/documentation.html 2010-03-19 09:52:50 UTC (rev 1333) @@ -11,7 +11,7 @@ <body> <p style="text-align:center;font-size: 20pt">Euler GUI Manual</p> -<p>© Jean-Marc Vanel - $Date: 2010-03-15$ - <a +<p>© Jean-Marc Vanel - $Date: 2010-03-19$ - <a href="http://eulergui.sourceforge.net/documentation.html">a view possibly older in sync. with EulerGUI release </a> - <a href="http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html">Latest @@ -23,15 +23,15 @@ <ul> <li><a href="#Introducti">Introduction</a></li> <li><a href="#Features">Features</a></li> - <li><a href="#Installati">Installation</a> + <li><a href="#Installati">Installation</a> <ul> - <li><a href="#Prerequisi">Prerequisite</a> + <li><a href="#Prerequisi">Prerequisite</a> <ul> <li><a href="#Additional">Additional steps on Mac</a></li> </ul> </li> <li><a href="#Install1">Install and run EulerGUI</a></li> - <li><a href="#Install">Install external tools</a> + <li><a href="#Install">Install external tools</a> <ul> <li><a href="#L702">Facultative tool</a></li> </ul> @@ -39,10 +39,10 @@ </ul> </li> <li><a href="#L3298">Support & community</a></li> - <li><a href="#cases">Use cases</a> + <li><a href="#cases">Use cases</a> <ul> <li><a href="#Main">Main use case</a></li> - <li><a href="#Inference">Inference engines</a> + <li><a href="#Inference">Inference engines</a> <ul> <li><a href="#case">CWM use case</a></li> <li><a href="#Drools">Drools use case</a></li> @@ -50,16 +50,16 @@ </ul> </li> <li><a href="#L3796">Which rule engine to use?</a></li> - <li><a href="#Data">Data sources</a> + <li><a href="#Data">Data sources</a> <ul> <li><a href="#Reading">Reading XMI files (UML or eCore)</a></li> - <li><a href="#Reading2">Reading plain XML files or XML Schema</a> + <li><a href="#Reading2">Reading plain XML files or XML Schema</a> <ul> <li><a href="#L2297">Redefer</a></li> <li><a href="#L2290">Gloze</a></li> </ul> </li> - <li><a href="#SPARQL">SPARQL queries as N3 sources</a> + <li><a href="#SPARQL">SPARQL queries as N3 sources</a> <ul> <li><a href="#L1134">SPARQL language</a></li> <li><a href="#L2107">Caveats</a></li> @@ -68,7 +68,7 @@ </ul> </li> <li><a href="#Reading1">Reading UML Textual files, UMT (simplified - UML )</a> + UML )</a> <ul> <li><a href="#Syntax">Syntax</a></li> <li><a href="#Usage">Usage</a></li> @@ -76,7 +76,7 @@ </li> </ul> </li> - <li><a href="#L939">Manipulating projects</a> + <li><a href="#L939">Manipulating projects</a> <ul> <li><a href="#L1191">Sub-projects</a></li> <li><a href="#L1200">Pipeline of projects (post-processing)</a></li> @@ -86,14 +86,14 @@ <li><a href="#Finding1">Finding data on the Web</a></li> <li><a href="#Finding11">Finding rules on the Web; rules for OWL concepts</a></li> - <li><a href="#Global1">Local tools</a> + <li><a href="#Global1">Local tools</a> <ul> <li><a href="#Show">Show graph</a></li> <li><a href="#Show1">Show N3 parse tree</a></li> <li><a href="#Show2">Show original source of N3 document</a></li> </ul> </li> - <li><a href="#Global">Global tools</a> + <li><a href="#Global">Global tools</a> <ul> <li><a href="#L3377">Search</a></li> <li><a href="#Generate">Generate Java code</a></li> @@ -102,12 +102,12 @@ <li><a href="#L33241">Export as XML</a></li> </ul> </li> - <li><a href="#Interopera">Interoperability with Protégé</a> + <li><a href="#Interopera">Interoperability with Protégé</a> <ul> <li><a href="#L3588">SWRL</a></li> </ul> </li> - <li><a href="#L2935">Interoperability with RDF SPARQL servers</a> + <li><a href="#L2935">Interoperability with RDF SPARQL servers</a> <ul> <li><a href="#L2943">Joseki</a></li> <li><a href="#L2958">Sesame</a></li> @@ -117,21 +117,21 @@ </ul> </li> <li><a href="#Examples">Examples</a></li> - <li><a href="#L3193">Other useful tools</a> + <li><a href="#L3193">Other useful tools</a> <ul> <li><a href="#L3221">Export from N3/RDF</a></li> <li><a href="#L3234">Import to N3/RDF</a></li> </ul> </li> <li><a href="#N-Triple">N-Triples, Turtle, and N3 formats</a></li> - <li><a href="#Logic">Logic</a> + <li><a href="#Logic">Logic</a> <ul> <li><a href="#Logic1">N3 Logic</a></li> <li><a href="#Coherent">Coherent Logic</a></li> <li><a href="#buit-ins">CWM built-ins</a></li> <li><a href="#Euler">Euler built-ins</a></li> <li><a href="#EulerGUI">EulerGUI Drools N3 engine built-ins</a></li> - <li><a href="#Translatin">Translating N3 into Drools language</a> + <li><a href="#Translatin">Translating N3 into Drools language</a> <ul> <li><a href="#Forward">Forward chaining engine and First Order Logic</a></li> @@ -143,19 +143,19 @@ </li> </ul> </li> - <li><a href="#TODO">Missing features</a> + <li><a href="#TODO">Missing features</a> <ul> <li><a href="#Implemente">Implemented features</a></li> </ul> </li> - <li><a href="#Developmen">Development</a> + <li><a href="#Developmen">Development</a> <ul> <li><a href="#Building">Building from sources</a></li> <li><a href="#Create">Create an eclipse project</a></li> <li><a href="#Uploading">Compiling dependencies and uploading them on the Maven repository on Sourceforge</a></li> <li><a href="#Making">Making a release</a></li> - <li><a href="#Test">Test</a> + <li><a href="#Test">Test</a> <ul> <li><a href="#L1845">Accelerate tests</a></li> <li><a href="#L1980">Gui functional tests</a></li> @@ -165,7 +165,7 @@ <li><a href="#Debug">Debug</a></li> </ul> </li> - <li><a href="#Architectu">Architecture</a> + <li><a href="#Architectu">Architecture</a> <ul> <li><a href="#Actual">Actual stuff</a></li> <li><a href="#Stuff">Stuff to refactor</a></li> @@ -1190,6 +1190,19 @@ <h3 id="Finding">Finding ontologies on the Web</h3> +<p>First you can add one of these criteria to any Google search (thanks to +Francis LAPIQUE for this trick):</p> + +<p>filetype:rdfs filetype:owl filetype:n3 filetype:xsd filetype:uml +filetype:ecore filetype:xmi , etc.</p> + +<p>And don't forget that, once you have found something that looks good, you +can <strong>drag and drop it on EulerGUI</strong>, to see it in N3.</p> + +<p></p> + +<p>Here is a table of search engines and repositories for ontologies.</p> + <table border="1"> <tbody> <tr> @@ -2657,6 +2670,12 @@ <p><a href="http://eulergui.sourceforge.net/maven2">http://eulergui.sourceforge.net/maven2</a></p> +<p></p> + +<p>In the recipies below, it is also possible to try something locally without +uploading on the remote repository. To do this, use this argument:</p> +<pre>-Durl=file:${HOME}/.m2/repository/</pre> + <p><strong>Parser4J</strong></p> <p>Do this to upload on the EulerGUI Maven repository on Sourceforge the latest This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm...@us...> - 2010-03-19 09:50:22
|
Revision: 1332 http://eulergui.svn.sourceforge.net/eulergui/?rev=1332&view=rev Author: jmvanel Date: 2010-03-19 09:50:16 +0000 (Fri, 19 Mar 2010) Log Message: ----------- pom.xml : migrate to latest (full) jedit 4.3.1 TODO : Tests in error: testURLProjectOWL(eulergui.gui.TestJavaEditor) testURLProject(eulergui.gui.TestJavaEditor) Modified Paths: -------------- trunk/eulergui/pom.xml Modified: trunk/eulergui/pom.xml =================================================================== --- trunk/eulergui/pom.xml 2010-03-18 18:31:02 UTC (rev 1331) +++ trunk/eulergui/pom.xml 2010-03-19 09:50:16 UTC (rev 1332) @@ -544,12 +544,19 @@ <scope>test</scope> </dependency> -<dependency> +<!--dependency> <groupId>net.sf.jedit-syntax</groupId> <artifactId>jedit-syntax</artifactId> <version>2.2.2</version> +</dependency--> + +<dependency> + <groupId>org.jedit</groupId> + <artifactId>jedit</artifactId> + <version>4.3.1</version> </dependency> + <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-18 18:31:12
|
Revision: 1331 http://eulergui.svn.sourceforge.net/eulergui/?rev=1331&view=rev Author: iamlolive Date: 2010-03-18 18:31:02 +0000 (Thu, 18 Mar 2010) Log Message: ----------- new version of the jedit editor. should roughly work. Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/gui/actions/Save.java trunk/eulergui/src/main/java/eulergui/gui/actions/SaveAs.java trunk/eulergui/src/main/java/eulergui/gui/actions/Statistics.java trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java Modified: trunk/eulergui/src/main/java/eulergui/gui/actions/Save.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/actions/Save.java 2010-03-18 10:13:42 UTC (rev 1330) +++ trunk/eulergui/src/main/java/eulergui/gui/actions/Save.java 2010-03-18 18:31:02 UTC (rev 1331) @@ -8,18 +8,20 @@ import javax.swing.AbstractAction; -import org.syntax.jedit.JEditTextArea; +//import org.syntax.jedit.JEditTextArea; import eulergui.gui.view.TextEditor; import eulergui.project.N3Source; +import org.gjt.sp.jedit.textarea.JEditTextArea; +import org.gjt.sp.jedit.textarea.StandaloneTextArea; public class Save extends AbstractAction { private static final long serialVersionUID = 1L; private N3Source n3Source; - private JEditTextArea embededEditor; + private StandaloneTextArea embededEditor; private TextEditor textEditor; - public Save( JEditTextArea embededEditor, TextEditor textEditor ) { + public Save( StandaloneTextArea embededEditor, TextEditor textEditor ) { this.embededEditor = embededEditor; this.textEditor = textEditor; this.n3Source = textEditor.get3NSource(); Modified: trunk/eulergui/src/main/java/eulergui/gui/actions/SaveAs.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/actions/SaveAs.java 2010-03-18 10:13:42 UTC (rev 1330) +++ trunk/eulergui/src/main/java/eulergui/gui/actions/SaveAs.java 2010-03-18 18:31:02 UTC (rev 1331) @@ -8,9 +8,11 @@ import n3_project.ProjectGUI; -import org.syntax.jedit.JEditTextArea; +//import org.syntax.jedit.JEditTextArea; import eulergui.gui.view.TextEditor; +import org.gjt.sp.jedit.textarea.JEditTextArea; +import org.gjt.sp.jedit.textarea.StandaloneTextArea; public class SaveAs extends Save // AbstractAction { @@ -18,7 +20,7 @@ private ProjectGUI projectGUI; public SaveAs(TextEditor textEditor, ProjectGUI projectGUI, - JEditTextArea embededEditor) { + StandaloneTextArea embededEditor) { super(embededEditor, textEditor); this.projectGUI = projectGUI; putValue(NAME, "Save as ..."); Modified: trunk/eulergui/src/main/java/eulergui/gui/actions/Statistics.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/actions/Statistics.java 2010-03-18 10:13:42 UTC (rev 1330) +++ trunk/eulergui/src/main/java/eulergui/gui/actions/Statistics.java 2010-03-18 18:31:02 UTC (rev 1331) @@ -6,17 +6,19 @@ import java.awt.event.ActionEvent; import javax.swing.AbstractAction; -import org.syntax.jedit.JEditTextArea; +//import org.syntax.jedit.JEditTextArea; import eulergui.inputs.N3SourceFromOtherFormat; import eulergui.project.N3Source; +import org.gjt.sp.jedit.textarea.JEditTextArea; +import org.gjt.sp.jedit.textarea.StandaloneTextArea; public class Statistics extends AbstractAction { private static final long serialVersionUID = 1L; private N3Source n3Source; - private JEditTextArea embededEditor; + private StandaloneTextArea embededEditor; - public Statistics(N3Source n3, JEditTextArea embededEditor) { + public Statistics(N3Source n3, StandaloneTextArea embededEditor) { this.n3Source = n3; this.embededEditor = embededEditor; putValue(NAME, "Statistics..."); @@ -40,9 +42,9 @@ .append( n3Source.getKnownURIs() ) .append( "\nDocument Length: " ) - .append( embededEditor.getDocumentLength() ) + .append( embededEditor.getText().length() ) .append( "\nLine Count: " ) - .append( embededEditor.getDocument().getTokenMarker().getLineCount() ) + .append( embededEditor.getLineCount() ) ; System.out.println( sb ); // TODO message panel } Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-18 10:13:42 UTC (rev 1330) +++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-18 18:31:02 UTC (rev 1331) @@ -1,7 +1,6 @@ package eulergui.gui.view; import java.awt.*; -import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; @@ -21,22 +20,31 @@ import javax.swing.JMenuBar; import javax.swing.WindowConstants; import javax.swing.event.DocumentEvent; -import javax.swing.text.BadLocationException; +import javax.swing.text.Segment; import n3_project.EditorManagement; import n3_project.ProjectGUI; -import org.syntax.jedit.JEditTextArea; -import org.syntax.jedit.SyntaxDocument; -import org.syntax.jedit.TextAreaPainter; -import org.syntax.jedit.tokenmarker.ShellScriptTokenMarker; -import org.syntax.jedit.tokenmarker.TokenMarker; -import org.syntax.jedit.tokenmarker.XMLTokenMarker; +import org.gjt.sp.jedit.buffer.BufferListener; +import org.gjt.sp.jedit.buffer.JEditBuffer; +import org.gjt.sp.jedit.jEdit; +import org.gjt.sp.jedit.syntax.TokenMarker; +import org.gjt.sp.jedit.textarea.JEditTextArea; +//import org.syntax.jedit.JEditTextArea; +//import org.syntax.jedit.SyntaxDocument; +//import org.syntax.jedit.TextAreaPainter; +//import org.syntax.jedit.tokenmarker.ShellScriptTokenMarker; +//import org.syntax.jedit.tokenmarker.TokenMarker; +//import org.syntax.jedit.tokenmarker.XMLTokenMarker; import eulergui.gui.actions.Save; import eulergui.gui.actions.SaveAs; import eulergui.gui.actions.Statistics; import eulergui.project.N3Source; +import org.gjt.sp.jedit.textarea.StandaloneTextArea; +import org.gjt.sp.jedit.textarea.TextAreaExtension; +import org.gjt.sp.jedit.textarea.TextAreaPainter; +import org.gjt.sp.util.Log; /** * a Text Editor factory, mainly for N3; @@ -48,52 +56,125 @@ private static Map<String, TokenMarker> suffix2syntax = new HashMap<String, TokenMarker>(); - private DocumentListener listener; + //private DocumentListener listener; private N3Source n3; private boolean edited; - private JEditTextArea jedit; + private StandaloneTextArea jedit; public JFrame jf; static { - suffix2syntax.put("n3", new N3TokenMarker()); - suffix2syntax.put("ttl", new N3TokenMarker()); - suffix2syntax.put("nt", new N3TokenMarker()); - suffix2syntax.put("sparql", new N3TokenMarker()); - suffix2syntax.put("xml", new XMLTokenMarker()); - suffix2syntax.put("xsd", new XMLTokenMarker()); - suffix2syntax.put("rdf", new XMLTokenMarker()); - suffix2syntax.put("owl", new XMLTokenMarker()); - suffix2syntax.put("uml", new XMLTokenMarker()); - suffix2syntax.put("xmi", new XMLTokenMarker()); - suffix2syntax.put("ecore", new XMLTokenMarker()); - suffix2syntax.put("mof", new XMLTokenMarker()); - suffix2syntax.put("emof", new XMLTokenMarker()); - suffix2syntax.put("cmof", new XMLTokenMarker()); - suffix2syntax.put("umlt", new ShellScriptTokenMarker()); + //TODO did not find yet how to do these stuff with the new jEdit +// suffix2syntax.put("n3", new N3TokenMarker()); +// suffix2syntax.put("ttl", new N3TokenMarker()); +// suffix2syntax.put("nt", new N3TokenMarker()); +// suffix2syntax.put("sparql", new N3TokenMarker()); +// suffix2syntax.put("xml", new XMLTokenMarker()); +// suffix2syntax.put("xsd", new XMLTokenMarker()); +// suffix2syntax.put("rdf", new XMLTokenMarker()); +// suffix2syntax.put("owl", new XMLTokenMarker()); +// suffix2syntax.put("uml", new XMLTokenMarker()); +// suffix2syntax.put("xmi", new XMLTokenMarker()); +// suffix2syntax.put("ecore", new XMLTokenMarker()); +// suffix2syntax.put("mof", new XMLTokenMarker()); +// suffix2syntax.put("emof", new XMLTokenMarker()); +// suffix2syntax.put("cmof", new XMLTokenMarker()); +// suffix2syntax.put("umlt", new ShellScriptTokenMarker()); + jEdit.initSystemProperties(); + Log.init(true, Log.DEBUG); } - public void setOnTop(){ - if(jf!=null) { + public void setOnTop() { + if (jf != null) { jf.setAlwaysOnTop(true); jf.setAlwaysOnTop(false); } } - public void addWindowListener(WindowListener l){ - if(jf!=null) + public void addWindowListener(WindowListener l) { + if (jf != null) jf.addWindowListener(l); } - public void removeWindowListener(WindowListener l){ - if(jf!=null) + public void removeWindowListener(WindowListener l) { + if (jf != null) jf.removeWindowListener(l); } + public void displayEditor(ProjectGUI projectGUI, String toOpen) { + JFrame jf = new JFrame(); + + JComponent embededEditor = insertFileOrURL(toOpen); + applySyntax(toOpen); + JMenuBar menuBar = new JMenuBar(); + jf.setJMenuBar(menuBar); + JMenu file = new JMenu("File"); + menuBar.add(file); + SaveAs saveAs = new SaveAs(this, projectGUI, + (StandaloneTextArea) embededEditor); + Save save = new Save((StandaloneTextArea) embededEditor, this); + file.add(save); + file.add(saveAs); + + jf.getContentPane().add(embededEditor); + jf.setSize(800, 600); + jf.setTitle(toOpen); + jf.setVisible(true); + ProjectGUI.setEulerGUIIcon(jf); + + jf.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + jf.addWindowListener(new WindowListener() { + + @Override + public void windowOpened(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowClosing(WindowEvent e) { + if (e.getID() == WindowEvent.WINDOW_CLOSING) { + if (edited) { + System.err.println("The document \"" + + getN3().getFileName() + + "\" has been edited, you must save it first."); + // TODO it should not close, but it does !!! + } else { + ((Window) e.getSource()).dispose(); + } + } + } + + @Override + public void windowClosed(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowIconified(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowDeiconified(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowActivated(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowDeactivated(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + }); + } + /** * display N3 Editor in a new Window, with save As and Statistics in File menu */ public void displayEditor(ProjectGUI projectGUI, N3Source n3) { - try { + jf = new JFrame( EditorManagement.fileToOpen(n3)); JComponent embededEditor = embedEditor(n3); @@ -103,11 +184,11 @@ JMenu file = new JMenu("File"); menuBar.add(file); SaveAs saveAs = new SaveAs(this, projectGUI, - (JEditTextArea) embededEditor); - Save save = new Save((JEditTextArea) embededEditor, this); + (StandaloneTextArea) embededEditor); + Save save = new Save((StandaloneTextArea) embededEditor, this); file.add(save); file.add(saveAs); - file.add(new Statistics(n3, (JEditTextArea) embededEditor)); + file.add(new Statistics(n3, (StandaloneTextArea) embededEditor)); jf.getContentPane().add(embededEditor); jf.setSize(800, 600); @@ -116,27 +197,75 @@ ProjectGUI.setEulerGUIIcon(jf); jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - listener = new DocumentListener(); - jf.addWindowListener(listener); - } catch (HeadlessException e) { - e.printStackTrace(); - } +// listener = new DocumentListener(); + jf.addWindowListener(new WindowListener() { + + @Override + public void windowOpened(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowClosing(WindowEvent e) { + if (e.getID() == WindowEvent.WINDOW_CLOSING) { + if (edited) { + System.err.println("The document \"" + + getN3().getFileName() + + "\" has been edited, you must save it first."); + // TODO it should not close, but it does !!! + } else { + ((Window) e.getSource()).dispose(); + } + } + } + + @Override + public void windowClosed(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowIconified(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowDeiconified(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowActivated(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void windowDeactivated(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + }); + } + public N3Source getN3() { + return n3; + } + /** * embed N3 Editor in a JComponent */ public JComponent embedEditor(N3Source n3) { this.n3 = n3; - jedit = new JEditTextArea(); + jedit = new StandaloneTextArea(jEdit.getPropertyManager()); String toOpen = EditorManagement.fileToOpen(n3); insertFileOrURL(toOpen); - applySyntax(n3.uri()); + // TODO it fails with the newer jEdit + // applySyntax(n3.uri()); return jedit; } public void setCaretPosition(int line, int col) { - + int position = jedit.getLineStartOffset(line) + col; //TODO the parser erroneously places the end of line errors. They are placed at the beginning of the next line. We correct that behaviour (on purpose?) if (col == 0) @@ -145,9 +274,10 @@ } private void setCaretPosition(int position) { - jedit.setCaretVisible(true); jedit.setCaretPosition(position); - jedit.scrollToCaret(); + // TODO does it exist in the new jEdit? + //jedit.getPainter().setCaretVisible(true); + //jedit.getPainter().scrollToCaret(); } @@ -156,126 +286,189 @@ } public void setToolTipText(String text) { - final String toolTipText = (text == null ? null : "<HTML>" + text.replace("\n", "<br/>") + "</HTML>"); - final TextAreaPainter textAreaPainter = jedit.getPainter(); - textAreaPainter.addCustomHighlight(new TextAreaPainter.Highlight() { + errorText = (text == null ? null : "<HTML>" + text.replace("\n", "<br/>") + "</HTML>"); + final TextAreaPainter painter = jedit.getPainter(); + painter.addExtension(getErrorHighlighterExtension()); + removeErrorHighlighterOnNextEdit(); + } - @Override - public void init(JEditTextArea textArea, TextAreaPainter.Highlight next) { - //To change body of implemented methods use File | Settings | File Templates. - } + public String errorText=""; + public int errorLine = -1; + private TextAreaExtension errorHighlighterExtension = null; - @Override - public void paintHighlight(Graphics gfx, int line, int y) { - } + public TextAreaExtension getErrorHighlighterExtension() { + if (errorHighlighterExtension == null) { + errorHighlighterExtension = new TextAreaExtension() { - public String getToolTipText(MouseEvent evt) { - return toolTipText; - } - }); + public void paintValidLine(Graphics2D gfx, int screenLine, int physicalLine, int start, int end, int y) { + if(physicalLine!=errorLine){ + super.paintValidLine(gfx, screenLine, physicalLine, start, end, y); + return; + } + try { + gfx.setColor(Color.RED); + TextAreaPainter painter = jedit.getPainter(); + FontMetrics fm = painter.getFontMetrics(); - removeTooltipOnNextEdit(); + Segment seg = null; + + + int x1 = (int) jedit.offsetToXY(jedit.getLineStartOffset(screenLine)).getX(); + int y1 = y; + //int endingY = (int) ta.offsetToXY(ta.getLineEndOffset(physicalLine)).getY() - (int)ta.offsetToXY(ta.getLineStartOffset(physicalLine)).getY(); + int height = fm.getHeight(); + int width = jedit.getLineLength(screenLine) * jedit.charWidth; +// Log.log(Log.DEBUG, this, "Width for line "+ physicalLine+"is calculated to: " + width); + + //gfx.fillRect(x1, y1, width, height); + //gfx.setStroke( new BasicStroke( 10f ) ); + + gfx.drawLine(x1, y1 + height - 1, x1 + width, y1 + height - 1); + } catch (Exception e) { + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + } + + + public String getToolTipText(int x, int y) { + try { +// int pos = jedit.xyToOffset(x, y); +// int currentLine = jedit.getLineOfOffset(pos); +// int width = jedit.getLineLength(currentLine) * jedit.charWidth; +// +// return "Width: " + width; + int off = jedit.xyToOffset(x, y); + int currentLine = jedit.getLineOfOffset(off); + if(currentLine == errorLine) + return errorText; + else + return ""; + } catch (Exception e) { + return ""; + } + + + } + }; + } + return errorHighlighterExtension; } public void showError(String errorMessage, int lineNumber, int columnNumber) { + errorLine = lineNumber; setToolTipText(errorMessage); setCaretPosition(lineNumber, columnNumber); setOnTop(); } - public void removeTooltipOnNextEdit() { - final DocumentListener tooltipRemover = new DocumentListener() { + public void removeErrorHighlighterOnNextEdit() { + final BufferListener errorHighlighter = new BufferListener() { + @Override - public void removeUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? - setToolTipText(null); - jedit.getDocument().removeDocumentListener(this); + public void foldLevelChanged(JEditBuffer jEditBuffer, int i, int i1) { + jedit.getPainter().removeExtension(getErrorHighlighterExtension()); + errorHighlighterExtension = null; + errorText = ""; } @Override - public void insertUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? - setToolTipText(null); - jedit.getDocument().removeDocumentListener(this); + public void contentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + jedit.getPainter().removeExtension(getErrorHighlighterExtension()); + errorHighlighterExtension = null; + errorText = ""; } @Override - public void changedUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? - setToolTipText(null); - jedit.getDocument().removeDocumentListener(this); + public void contentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + jedit.getPainter().removeExtension(getErrorHighlighterExtension()); + errorHighlighterExtension = null; + errorText = ""; } @Override - public void windowClosing(WindowEvent e) { - //super.windowClosing(e); //To change body of overridden methods use File | Settings | File Templates. + public void preContentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + } + + @Override + public void preContentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void transactionComplete(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void foldHandlerChanged(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void bufferLoaded(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } }; - jedit.getDocument().addDocumentListener(tooltipRemover); + jedit.getBuffer().addBufferListener(errorHighlighter); } public void removeAppendanceOnNextEdit() { - final DocumentListener attendanceRemover = new DocumentListener() { + final BufferListener attendanceRemover = new BufferListener() { + @Override - public void removeUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? - setTitleAppendance(""); - jedit.getDocument().removeDocumentListener(this); + public void foldLevelChanged(JEditBuffer jEditBuffer, int i, int i1) { + //To change body of implemented methods use File | Settings | File Templates. } @Override - public void insertUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? + public void contentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { setTitleAppendance(""); - jedit.getDocument().removeDocumentListener(this); + jedit.getBuffer().removeBufferListener(this); + } @Override - public void changedUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? + public void contentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { setTitleAppendance(""); - jedit.getDocument().removeDocumentListener(this); + jedit.getBuffer().removeBufferListener(this); } @Override - public void windowClosing(WindowEvent e) { - //super.windowClosing(e); //To change body of overridden methods use File | Settings | File Templates. + public void preContentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. } + + @Override + public void preContentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void transactionComplete(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void foldHandlerChanged(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void bufferLoaded(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } }; - jedit.getDocument().addDocumentListener(attendanceRemover); + jedit.getBuffer().addBufferListener(attendanceRemover); } /** * display Editor in a new Window, with save As in File menu */ - public void displayEditor(ProjectGUI projectGUI, String toOpen) { - JFrame jf = new JFrame(); - JComponent embededEditor = insertFileOrURL(toOpen); - applySyntax(toOpen); - JMenuBar menuBar = new JMenuBar(); - jf.setJMenuBar(menuBar); - JMenu file = new JMenu("File"); - menuBar.add(file); - SaveAs saveAs = new SaveAs(this, projectGUI, - (JEditTextArea) embededEditor); - Save save = new Save((JEditTextArea) embededEditor, this); - file.add(save); - file.add(saveAs); - jf.getContentPane().add(embededEditor); - jf.setSize(800, 600); - jf.setTitle(toOpen); - jf.setVisible(true); - ProjectGUI.setEulerGUIIcon(jf); - - jf.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - listener = new DocumentListener(); - jf.addWindowListener(listener); - } - private JComponent insertFileOrURL(String toOpen) { - jedit = new JEditTextArea(); + jedit = new StandaloneTextArea(jEdit.getPropertyManager()); InputStream is = null; try { @@ -300,15 +493,58 @@ } String text = builder.toString(); reader.close(); - SyntaxDocument document = new N3SyntaxDocument(); - jedit.setDocument(document); + +// SyntaxDocument document = new N3SyntaxDocument(); +// jedit.getBuffer().setDocument(document); jedit.setText(text); - document.addDocumentListener(listener); + jedit.getBuffer().addBufferListener(new BufferListener() { + + @Override + public void foldLevelChanged(JEditBuffer jEditBuffer, int i, int i1) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void contentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + edited = true; + } + + @Override + public void contentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + edited = true; + } + + @Override + public void preContentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void preContentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void transactionComplete(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void foldHandlerChanged(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void bufferLoaded(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + }); + //document.addDocumentListener(listener); // need to reset edited, because calling setText() has already // set edited = true edited = false; } - jedit.scrollTo(0, 0); + //jedit.getPainter().scrollTo(0, 0); } catch (IOException e) { e.printStackTrace(); @@ -321,17 +557,16 @@ String suffix = toOpen.substring( toOpen.lastIndexOf('.') + 1); TokenMarker syntax = suffix2syntax.get(suffix); - jedit.setTokenMarker(syntax); + jedit.getBuffer().setTokenMarker(syntax); } - public String getTitleAttendance() { return titleAttendance; } public void setTitleAppendance(String titleAttendance) { - jf.setTitle(jf.getTitle().substring(0,jf.getTitle().lastIndexOf(getTitleAttendance()))+titleAttendance); + jf.setTitle(jf.getTitle().substring(0, jf.getTitle().lastIndexOf(getTitleAttendance())) + titleAttendance); this.titleAttendance = titleAttendance; } @@ -341,58 +576,57 @@ * records the first modification, to prevent unsaved edits * TODO upon Save actions, reset {@link #edited} to false */ - class DocumentListener extends WindowAdapter - implements javax.swing.event.DocumentListener - , WindowListener -// , WindowStateListener - { - @Override - /** PENDING these 3 methods are apparently not called; - * beginCompoundEdit does the job - */ - public void removeUpdate(DocumentEvent e) { - edited = true; - } +// class DocumentListener extends WindowAdapter +// implements javax.swing.event.DocumentListener +// , WindowListener +//// , WindowStateListener +// { +// @Override +// /** PENDING these 3 methods are apparently not called; +// * beginCompoundEdit does the job +// */ +// public void removeUpdate(DocumentEvent e) { +// edited = true; +// } +// +// @Override +// public void insertUpdate(DocumentEvent e) { +// edited = true; +// } +// +// @Override +// public void changedUpdate(DocumentEvent e) { +// edited = true; +// } +// +// @Override +// public void windowClosing(WindowEvent e) { +// if (e.getID() == WindowEvent.WINDOW_CLOSING) { +// if (edited) { +// System.err.println("The document \"" +// + n3.getFileName() +// + "\" has been edited, you must save it first."); +// // TODO it should not close, but it does !!! +// } else { +// ((Window) e.getSource()).dispose(); +// } +// } +// } +// } - @Override - public void insertUpdate(DocumentEvent e) { - edited = true; - } - - @Override - public void changedUpdate(DocumentEvent e) { - edited = true; - } - - @Override - public void windowClosing(WindowEvent e) { - if (e.getID() == WindowEvent.WINDOW_CLOSING) { - if (edited) { - System.err.println("The document \"" - + n3.getFileName() - + "\" has been edited, you must save it first."); - // TODO it should not close, but it does !!! - } else { - ((Window) e.getSource()).dispose(); - } - } - } - } - - class N3SyntaxDocument extends SyntaxDocument { - private static final long serialVersionUID = 1L; - - @Override - public void beginCompoundEdit() { - if (!edited) { - if (n3 != null) { - System.out.println("First edit " + n3.showShortName()); - } - edited = true; - } - } - } - +// class N3SyntaxDocument extends SyntaxDocument { +// private static final long serialVersionUID = 1L; +// +// @Override +// public void beginCompoundEdit() { +// if (!edited) { +// if (n3 != null) { +// System.out.println("First edit " + n3.showShortName()); +// } +// edited = true; +// } +// } +// } public N3Source get3NSource() { return n3; } @@ -416,15 +650,15 @@ } public void insertStringAtPaneEnd(String message) { - int offs = jedit.getDocument().getEndPosition().getOffset(); - try { - jedit.getDocument().insertString(offs, message, null); - jedit.setCaretPosition( - jedit.getDocument().getEndPosition().getOffset() - 1); - } catch (BadLocationException e) { - // Auto-generated catch block - e.printStackTrace(); - } - - } + int offs = jedit.getBuffer().getLength(); +// try { + jedit.getBuffer().insert(offs, message); + jedit.setCaretPosition( + jedit.getBuffer().getLength() - 1); +// } catch (BadLocationException e) { +// // Auto-generated catch block +// e.printStackTrace(); +// } + + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm...@us...> - 2010-03-18 10:13:49
|
Revision: 1330 http://eulergui.svn.sourceforge.net/eulergui/?rev=1330&view=rev Author: jmvanel Date: 2010-03-18 10:13:42 +0000 (Thu, 18 Mar 2010) Log Message: ----------- add examples to show the use of log:includes and @keywords (from N3 specification) Added Paths: ----------- trunk/eulergui/examples/log_includes.n3 trunk/eulergui/examples/log_includes2.n3 Added: trunk/eulergui/examples/log_includes.n3 =================================================================== --- trunk/eulergui/examples/log_includes.n3 (rev 0) +++ trunk/eulergui/examples/log_includes.n3 2010-03-18 10:13:42 UTC (rev 1330) @@ -0,0 +1,18 @@ +@prefix log: <http://www.w3.org/2000/10/swap/log#>. +@prefix : <http://jos.org#>. +@keywords. + +# this example shows the use of @keywords to avoid writing : before every term. + +Bob lives Boston. +Bob wrote { Boston weather sunny }. +Alice lives Adelaide. +Alice wrote { Boston weather cold }. + +@forAll x, y, z, w. +{ x wrote y. + y log:includes {z weather w}. + x lives z +} log:implies { + z weather w +} . Added: trunk/eulergui/examples/log_includes2.n3 =================================================================== --- trunk/eulergui/examples/log_includes2.n3 (rev 0) +++ trunk/eulergui/examples/log_includes2.n3 2010-03-18 10:13:42 UTC (rev 1330) @@ -0,0 +1,23 @@ +@prefix log: <http://www.w3.org/2000/10/swap/log#>. +@prefix : <http://jos.org#>. +@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#> . + +# cf http://www.w3.org/DesignIssues/N3Logic +# This means: "We believe statements about the weather at a place only from people who live there." +# Works only with Euler. + +:Bob :lives :Boston. +:Bob :wrote {:Boston :weather :sunny}. + +:Alice :lives :Adelaide. +:Alice :wrote {:Boston :weather :cold}. + + +{ ?x :wrote ?y. + ?y log:includes {?z :weather ?w}. + ?x :lives ?z +} log:implies { + ?z :weather ?w +} . + +# expected ==> :Boston :weather :sunny . This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-17 13:26:26
|
Revision: 1329 http://eulergui.svn.sourceforge.net/eulergui/?rev=1329&view=rev Author: iamlolive Date: 2010-03-17 13:26:19 +0000 (Wed, 17 Mar 2010) Log Message: ----------- editors now always show on top. Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java trunk/eulergui/src/main/java/n3_project/EditorManagement.java Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-17 11:48:24 UTC (rev 1328) +++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-17 13:26:19 UTC (rev 1329) @@ -180,6 +180,7 @@ public void showError(String errorMessage, int lineNumber, int columnNumber) { setToolTipText(errorMessage); setCaretPosition(lineNumber, columnNumber); + setOnTop(); } public void removeTooltipOnNextEdit() { Modified: trunk/eulergui/src/main/java/n3_project/EditorManagement.java =================================================================== --- trunk/eulergui/src/main/java/n3_project/EditorManagement.java 2010-03-17 11:48:24 UTC (rev 1328) +++ trunk/eulergui/src/main/java/n3_project/EditorManagement.java 2010-03-17 13:26:19 UTC (rev 1329) @@ -176,8 +176,9 @@ } else { editor = n3SourceToEditor.get(n3); - editor.setOnTop(); + } + editor.setOnTop(); return editor; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-17 11:48:35
|
Revision: 1328 http://eulergui.svn.sourceforge.net/eulergui/?rev=1328&view=rev Author: iamlolive Date: 2010-03-17 11:48:24 +0000 (Wed, 17 Mar 2010) Log Message: ----------- cursor offset has moved from TextEditor to ResultManagement Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java trunk/eulergui/src/main/java/n3_project/ResultManagement.java Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-17 11:21:41 UTC (rev 1327) +++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-17 11:48:24 UTC (rev 1328) @@ -136,11 +136,7 @@ } public void setCaretPosition(int line, int col) { - if (line >= 1) - line--; - if (col >= 1) - col--; - + int position = jedit.getLineStartOffset(line) + col; //TODO the parser erroneously places the end of line errors. They are placed at the beginning of the next line. We correct that behaviour (on purpose?) if (col == 0) Modified: trunk/eulergui/src/main/java/n3_project/ResultManagement.java =================================================================== --- trunk/eulergui/src/main/java/n3_project/ResultManagement.java 2010-03-17 11:21:41 UTC (rev 1327) +++ trunk/eulergui/src/main/java/n3_project/ResultManagement.java 2010-03-17 11:48:24 UTC (rev 1328) @@ -212,7 +212,12 @@ String errorMessage = result.getErrorMessage(); int lineNumber = result.getParseResult().getLineNumber(); int columnNumber = result.getParseResult().getColumnNumber(); + if (lineNumber >= 1) + lineNumber--; + if (columnNumber >= 1) + columnNumber--; + TextEditor editor = projectGUI.getEditorManagement().openJavaEditor(source, "(Error at line "+lineNumber+")", true); editor.showError(errorMessage, lineNumber, columnNumber); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-17 11:21:52
|
Revision: 1327 http://eulergui.svn.sourceforge.net/eulergui/?rev=1327&view=rev Author: iamlolive Date: 2010-03-17 11:21:41 +0000 (Wed, 17 Mar 2010) Log Message: ----------- PARSE button now opens the editor, in error mode, when parsing fails. Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/gui/view/ButtonsForN3Source.java Modified: trunk/eulergui/src/main/java/eulergui/gui/view/ButtonsForN3Source.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/view/ButtonsForN3Source.java 2010-03-17 11:19:50 UTC (rev 1326) +++ trunk/eulergui/src/main/java/eulergui/gui/view/ButtonsForN3Source.java 2010-03-17 11:21:41 UTC (rev 1327) @@ -14,6 +14,7 @@ import eulergui.project.Project; import n3_project.ProjectGUI; import n3_project.SourceFilesView; +import n3_project.exceptions.parser.ParsingException; import n3_project.helpers.N3toGraphviz; import net.sf.parser4j.parser.service.IParserListener; import net.sf.parser4j.parser.service.ParserException; @@ -172,8 +173,9 @@ try { projectGUI.getResultManagement().insertStringAtPaneEnd( projectGUI.getResultManagement().getProjectGUI(), - "PARSE ERROR (see arror panel)." - ); + "PARSE ERROR (see error panel)."); + projectGUI.getResultManagement().displayOriginalSourceWithErrors(n3Source, n3ParseResult); + sourceFilesView.getProject().setErrors(n3ParseResult.getErrorMessage()); } catch (BadLocationException e2) { e2.printStackTrace(); @@ -193,6 +195,12 @@ } catch (ParserException parserException) { parserException.printStackTrace(); try { + if(parserException instanceof ParsingException){ + ParsingException parsingException = ((ParsingException) parserException); + + projectGUI.getResultManagement().displayOriginalSourceWithErrors(parsingException.getSource(), parsingException.getResult()); + } + else projectGUI.getResultManagement().insertStringAtPaneEnd( projectGUI.getResultManagement().getProjectGUI(), parserException.toString() ); @@ -202,7 +210,7 @@ } catch (BadLocationException ee) { ee.printStackTrace(); } - projectGUI.getResultManagement().displayStandardError(); + //projectGUI.getResultManagement().displayStandardError(); } }); parserButton.setText("PARSE"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-17 11:19:56
|
Revision: 1326 http://eulergui.svn.sourceforge.net/eulergui/?rev=1326&view=rev Author: iamlolive Date: 2010-03-17 11:19:50 +0000 (Wed, 17 Mar 2010) Log Message: ----------- displayError now add some details in the Editor's window title. Modified Paths: -------------- trunk/eulergui/src/main/java/n3_project/ResultManagement.java Modified: trunk/eulergui/src/main/java/n3_project/ResultManagement.java =================================================================== --- trunk/eulergui/src/main/java/n3_project/ResultManagement.java 2010-03-17 11:17:43 UTC (rev 1325) +++ trunk/eulergui/src/main/java/n3_project/ResultManagement.java 2010-03-17 11:19:50 UTC (rev 1326) @@ -209,11 +209,11 @@ } public void displayOriginalSourceWithErrors(eulergui.project.N3Source source, N3ParseResult result) { - TextEditor editor = projectGUI.getEditorManagement().openJavaEditor(source); - String errorMessage = result.getErrorMessage(); int lineNumber = result.getParseResult().getLineNumber(); int columnNumber = result.getParseResult().getColumnNumber(); + + TextEditor editor = projectGUI.getEditorManagement().openJavaEditor(source, "(Error at line "+lineNumber+")", true); editor.showError(errorMessage, lineNumber, columnNumber); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-17 11:17:49
|
Revision: 1325 http://eulergui.svn.sourceforge.net/eulergui/?rev=1325&view=rev Author: iamlolive Date: 2010-03-17 11:17:43 +0000 (Wed, 17 Mar 2010) Log Message: ----------- correct management of title appendance Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java trunk/eulergui/src/main/java/n3_project/EditorManagement.java Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-17 11:03:33 UTC (rev 1324) +++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-17 11:17:43 UTC (rev 1325) @@ -186,7 +186,7 @@ setCaretPosition(lineNumber, columnNumber); } - private void removeTooltipOnNextEdit() { + public void removeTooltipOnNextEdit() { final DocumentListener tooltipRemover = new DocumentListener() { @Override public void removeUpdate(DocumentEvent e) { @@ -217,6 +217,37 @@ jedit.getDocument().addDocumentListener(tooltipRemover); } + public void removeAppendanceOnNextEdit() { + final DocumentListener attendanceRemover = new DocumentListener() { + @Override + public void removeUpdate(DocumentEvent e) { + //TODO how to remove our custom Highlight instead of this quick hack ? + setTitleAppendance(""); + jedit.getDocument().removeDocumentListener(this); + } + + @Override + public void insertUpdate(DocumentEvent e) { + //TODO how to remove our custom Highlight instead of this quick hack ? + setTitleAppendance(""); + jedit.getDocument().removeDocumentListener(this); + } + + @Override + public void changedUpdate(DocumentEvent e) { + //TODO how to remove our custom Highlight instead of this quick hack ? + setTitleAppendance(""); + jedit.getDocument().removeDocumentListener(this); + } + + @Override + public void windowClosing(WindowEvent e) { + //super.windowClosing(e); //To change body of overridden methods use File | Settings | File Templates. + } + }; + jedit.getDocument().addDocumentListener(attendanceRemover); + } + /** * display Editor in a new Window, with save As in File menu */ @@ -296,6 +327,19 @@ jedit.setTokenMarker(syntax); } + + + public String getTitleAttendance() { + return titleAttendance; + } + + public void setTitleAppendance(String titleAttendance) { + jf.setTitle(jf.getTitle().substring(0,jf.getTitle().lastIndexOf(getTitleAttendance()))+titleAttendance); + this.titleAttendance = titleAttendance; + } + + public String titleAttendance = ""; + /** * records the first modification, to prevent unsaved edits * TODO upon Save actions, reset {@link #edited} to false Modified: trunk/eulergui/src/main/java/n3_project/EditorManagement.java =================================================================== --- trunk/eulergui/src/main/java/n3_project/EditorManagement.java 2010-03-17 11:03:33 UTC (rev 1324) +++ trunk/eulergui/src/main/java/n3_project/EditorManagement.java 2010-03-17 11:17:43 UTC (rev 1325) @@ -120,11 +120,15 @@ public Map<N3Source,TextEditor> n3SourceToEditor = new HashMap<N3Source, TextEditor>(); - public TextEditor openJavaEditor( final N3Source n3 ) { - return openJavaEditor(n3,""); + public TextEditor openJavaEditor( final N3Source n3, String titleAppendance , boolean removeAppendanceOnFirstEdit ) { + TextEditor editor = openJavaEditor(n3); + editor.setTitleAppendance(titleAppendance); + if(removeAppendanceOnFirstEdit) + editor.removeAppendanceOnNextEdit(); + return editor; } - public TextEditor openJavaEditor( final N3Source n3, String titleAppendance ) { + public TextEditor openJavaEditor( final N3Source n3 ) { final TextEditor editor; if(!n3SourceToEditor.containsKey(n3)){ editor = new TextEditor(); @@ -174,7 +178,7 @@ editor = n3SourceToEditor.get(n3); editor.setOnTop(); } - editor.jf.setTitle(n3.showShortName()+ " " + titleAppendance); + return editor; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-17 11:03:40
|
Revision: 1324 http://eulergui.svn.sourceforge.net/eulergui/?rev=1324&view=rev Author: iamlolive Date: 2010-03-17 11:03:33 +0000 (Wed, 17 Mar 2010) Log Message: ----------- Titles of editors can now have an appendable text, after the edited file name Modified Paths: -------------- trunk/eulergui/src/main/java/n3_project/EditorManagement.java Modified: trunk/eulergui/src/main/java/n3_project/EditorManagement.java =================================================================== --- trunk/eulergui/src/main/java/n3_project/EditorManagement.java 2010-03-17 09:31:11 UTC (rev 1323) +++ trunk/eulergui/src/main/java/n3_project/EditorManagement.java 2010-03-17 11:03:33 UTC (rev 1324) @@ -120,7 +120,11 @@ public Map<N3Source,TextEditor> n3SourceToEditor = new HashMap<N3Source, TextEditor>(); - public TextEditor openJavaEditor( final N3Source n3 ) { + public TextEditor openJavaEditor( final N3Source n3 ) { + return openJavaEditor(n3,""); + } + + public TextEditor openJavaEditor( final N3Source n3, String titleAppendance ) { final TextEditor editor; if(!n3SourceToEditor.containsKey(n3)){ editor = new TextEditor(); @@ -170,6 +174,7 @@ editor = n3SourceToEditor.get(n3); editor.setOnTop(); } + editor.jf.setTitle(n3.showShortName()+ " " + titleAppendance); return editor; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm...@us...> - 2010-03-17 09:31:17
|
Revision: 1323 http://eulergui.svn.sourceforge.net/eulergui/?rev=1323&view=rev Author: jmvanel Date: 2010-03-17 09:31:11 +0000 (Wed, 17 Mar 2010) Log Message: ----------- add test/error-parse-comment-at-end.n3 Added Paths: ----------- trunk/eulergui/test/error-parse-comment-at-end.n3 Added: trunk/eulergui/test/error-parse-comment-at-end.n3 =================================================================== --- trunk/eulergui/test/error-parse-comment-at-end.n3 (rev 0) +++ trunk/eulergui/test/error-parse-comment-at-end.n3 2010-03-17 09:31:11 UTC (rev 1323) @@ -0,0 +1,2 @@ +:a :b :c. +# bla \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-17 09:00:57
|
Revision: 1322 http://eulergui.svn.sourceforge.net/eulergui/?rev=1322&view=rev Author: iamlolive Date: 2010-03-17 09:00:47 +0000 (Wed, 17 Mar 2010) Log Message: ----------- a (slightly better) display of error messages. Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/N3ParseResult.java Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/N3ParseResult.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/N3ParseResult.java 2010-03-16 10:20:31 UTC (rev 1321) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/N3ParseResult.java 2010-03-17 09:00:47 UTC (rev 1322) @@ -88,12 +88,21 @@ } - stringBuilder.append("\nExpecting :\n"); + stringBuilder.append("\nExpecting one of these :\n"); if (expectedTerminal==true) { for (TerminalCharRange terminalCharRange : parseResult.getExpectedTerminal()) { stringBuilder.append('\t'); - stringBuilder.append("-> "+(terminalCharRange.getFirstTerminalValue()==terminalCharRange.getLastTerminalValue()?(char)terminalCharRange.getFirstTerminalValue():terminalCharRange.toString())); + int firstTerminalValue = terminalCharRange.getFirstTerminalValue(); + int lastTerminalValue = terminalCharRange.getLastTerminalValue(); + if(firstTerminalValue == lastTerminalValue){ + if (firstTerminalValue < ' ' || firstTerminalValue >= 0x7f) { + stringBuilder.append("-> Ox"+Integer.toString(firstTerminalValue, 16)); + } else { + stringBuilder.append("-> "+(char) firstTerminalValue); + } + }else + stringBuilder.append("-> "+(terminalCharRange.toString())); stringBuilder.append('\n'); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm...@us...> - 2010-03-16 10:20:38
|
Revision: 1321 http://eulergui.svn.sourceforge.net/eulergui/?rev=1321&view=rev Author: jmvanel Date: 2010-03-16 10:20:31 +0000 (Tue, 16 Mar 2010) Log Message: ----------- GUI enhancement: re-established (the regression is gone) glue together the components between the button bar and the bottom text panel, so that the bottom text panel can grow in size. Modified Paths: -------------- trunk/eulergui/src/main/java/n3_project/SourceFilesView.java Modified: trunk/eulergui/src/main/java/n3_project/SourceFilesView.java =================================================================== --- trunk/eulergui/src/main/java/n3_project/SourceFilesView.java 2010-03-15 18:37:08 UTC (rev 1320) +++ trunk/eulergui/src/main/java/n3_project/SourceFilesView.java 2010-03-16 10:20:31 UTC (rev 1321) @@ -1,6 +1,7 @@ package n3_project; import java.awt.Color; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.Collection; @@ -48,33 +49,36 @@ getButtonsPanel().removeAll(); getButtonsPanel().setLayout(new BoxLayout(getButtonsPanel(), BoxLayout.Y_AXIS)); - + int buttonCount = 0; + Dimension buttonSize = new Dimension(); // copy sources to avoid ConcurrentModificationException Collection<N3Source> sources_ = new ArrayList<N3Source>( getProject().getSources().values() ); for (N3Source n3Source : sources_) { - addButtonForFile( n3Source ); + buttonSize = addButtonForFile( n3Source ).getSize(); + buttonCount++; } N3Source n3 = getProject().getN3Query(); if (n3 != null) { - doAddButtonForFile( n3, true ); + doAddButtonForFile( n3, true ); // TODO buttonSize + buttonCount++; } fireEventsToUpdateN3SourceComponents(); // glue together the buttons for N3 sources -// getButtonsPanel().setMaximumSize( getButtonsPanel().getPreferredSize() ); -// TODO: commented out (was added in revision 1301), because of regression - // (see revision 1310 ) - - System.out.println("SourceFilesView.makeButtonsPanel(): " + - "getButtonsPanel().getPreferredSize(): " - + getButtonsPanel().getPreferredSize() ); - + getButtonsPanel().setMaximumSize( new Dimension( + Short.MAX_VALUE, + buttonCount * buttonSize.height ) ); + getCenterPanel().validate(); +// System.out.println("AFTER getCenterPanel().validate();" ); +// System.out.println("SourceFilesView.makeButtonsPanel(): " +// + " getButtonsPanel().getSize(): " +// + getButtonsPanel().getSize() ); getCenterPanel().invalidate(); getProjectGUI().updateWindowTitle(); @@ -104,7 +108,7 @@ /** add a row of Buttons for any N3 source, non-query * TODO add argument isQuery and unify with other method addButtonForFile */ - void addButtonForFile( N3Source n3 ) { + JPanel addButtonForFile( N3Source n3 ) { String otherFile = ""; if( n3 instanceof N3SourceFromOtherFormat ) { @@ -120,6 +124,7 @@ } visualizeErrorOnN3Source(n3, panel); + return panel; } static void visualizeErrorOnN3Source(N3Source n3, JPanel panel) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-15 18:37:15
|
Revision: 1320 http://eulergui.svn.sourceforge.net/eulergui/?rev=1320&view=rev Author: iamlolive Date: 2010-03-15 18:37:08 +0000 (Mon, 15 Mar 2010) Log Message: ----------- our own version of the parsing error message. Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/N3ParseResult.java Modified: trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/N3ParseResult.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/N3ParseResult.java 2010-03-15 18:36:23 UTC (rev 1319) +++ trunk/eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/entity/N3ParseResult.java 2010-03-15 18:37:08 UTC (rev 1320) @@ -2,6 +2,9 @@ import net.sf.parser4j.parser.entity.ParseResult; import eulergui.n3model.IN3Model; +import net.sf.parser4j.parser.entity.data.TerminalCharRange; +import net.sf.parser4j.parser.entity.parsenode.status.IParseNodeInErrorStatus; +import net.sf.parser4j.parser.service.ParsingToStringUtil; /** * @@ -14,7 +17,8 @@ private final IN3Model model; - public N3ParseResult(final ParseResult parseResult, final IN3Model model) { + + public N3ParseResult(final ParseResult parseResult, final IN3Model model) { this.parseResult = parseResult; this.model = model; } @@ -38,6 +42,111 @@ } public String getErrorMessage() { - return parseResult.toString(); + boolean lastCharacterRead = true; + boolean expectedTerminal = true; + boolean expectedNonTerminal = true; + boolean reduceerror = true; + boolean syntaxStacks = false; +boolean lexicalStacks = false; + + + //return parseResult.toString(); + final StringBuilder stringBuilder = new StringBuilder(); +// if (isInError()) { +// stringBuilder.append("has parsing error\n"); +// } else { +// stringBuilder.append("does not have parsing error\n"); +// } +// if (parseResult.isPreserveParseNode()) { +// stringBuilder.append("parse node preserved\n"); +// } else { +// stringBuilder.append("parse node not preserved\n"); +// } + if (parseResult.isParseError()) { +// stringBuilder.append("parse failed: file "); +// stringBuilder.append(parseResult.getFileName()); +// stringBuilder.append(", line "); +// stringBuilder.append(parseResult.getLineNumber()); +// stringBuilder.append(" column "); +// stringBuilder.append(parseResult.getColumnNumber()); + + if (lastCharacterRead) { + stringBuilder.append("Last character read : "); + if (parseResult.getLastTerminalValueRead() == -1) { + stringBuilder.append("EOF"); + } else if (parseResult.getLastTerminalValueRead() < ' ' + || parseResult.getLastTerminalValueRead() >= 0x7f) { + stringBuilder.append(String.format("0X%2X", + new Object[] { parseResult.getLastTerminalValueRead() })); + + } else { + stringBuilder.append('"'); + stringBuilder.append((char) parseResult.getLastTerminalValueRead()); + stringBuilder.append('"'); + } + + } + + + stringBuilder.append("\nExpecting :\n"); + if (expectedTerminal==true) { + + for (TerminalCharRange terminalCharRange : parseResult.getExpectedTerminal()) { + stringBuilder.append('\t'); + stringBuilder.append("-> "+(terminalCharRange.getFirstTerminalValue()==terminalCharRange.getLastTerminalValue()?(char)terminalCharRange.getFirstTerminalValue():terminalCharRange.toString())); + stringBuilder.append('\n'); + } + } + + if (expectedNonTerminal==true) { + //stringBuilder.append("expected non terminal:\n"); + for (String nonTerminal : parseResult.getExpectedNonTerminal()) { + stringBuilder.append('\t'); + stringBuilder.append("-> "+nonTerminal); + stringBuilder.append('\n'); + } + } + } + else { + stringBuilder.append("parse succeed\n"); + } + + if (reduceerror == true && parseResult.getErrorStatusList() != null && !parseResult.getErrorStatusList().isEmpty()) { + stringBuilder.append("reduce error: "); + for (IParseNodeInErrorStatus status : parseResult.getErrorStatusList()) { + stringBuilder.append(status.toString()); + stringBuilder.append('\n'); + } + } + + + + if (parseResult.getParseStacks() != null) { + if (syntaxStacks==true) { + stringBuilder.append("syntax parse stacks\n"); + stringBuilder.append(parseResult.getParsingToStringUtil().parseStacksToString( + parseResult.getParseStacks(), parseResult.getTokenRecognition(), parseResult.getStringTokenRecognition(), + false/* + * true/ addParseTree + */)); + } + } + + if (parseResult.getTokenParseStacks() != null) { + + if (lexicalStacks == true) { + stringBuilder.append("lexical parse stacks\n"); + stringBuilder.append(parseResult.getParsingToStringUtil().parseStacksToString( + parseResult.getTokenParseStacks(), parseResult.getTokenRecognition(), parseResult.getStringTokenRecognition(), + false/* + * true/ addParseTree + */)); + } + } + + return stringBuilder.toString(); + //return parseResult.toString(); + + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <iam...@us...> - 2010-03-15 18:36:30
|
Revision: 1319 http://eulergui.svn.sourceforge.net/eulergui/?rev=1319&view=rev Author: iamlolive Date: 2010-03-15 18:36:23 +0000 (Mon, 15 Mar 2010) Log Message: ----------- our own version of ParseResult (from parser4j). it will work alongside the sealed=false version of parser4j.jar, that we have just put on our maven repository. Added Paths: ----------- trunk/eulergui/src/main/java/net/sf/ trunk/eulergui/src/main/java/net/sf/parser4j/ trunk/eulergui/src/main/java/net/sf/parser4j/parser/ trunk/eulergui/src/main/java/net/sf/parser4j/parser/entity/ trunk/eulergui/src/main/java/net/sf/parser4j/parser/entity/ParseResult.java Added: trunk/eulergui/src/main/java/net/sf/parser4j/parser/entity/ParseResult.java =================================================================== --- trunk/eulergui/src/main/java/net/sf/parser4j/parser/entity/ParseResult.java (rev 0) +++ trunk/eulergui/src/main/java/net/sf/parser4j/parser/entity/ParseResult.java 2010-03-15 18:36:23 UTC (rev 1319) @@ -0,0 +1,412 @@ +/* + * Copyright 2008 Luc Peuvrier + * + * This file is part of parser4j. + * + * parser4j is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * parser4j is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with parser4j. If not, see <http://www.gnu.org/licenses/>. + */ +package net.sf.parser4j.parser.entity; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + +import net.sf.parser4j.parser.entity.data.NonTerminal; +import net.sf.parser4j.parser.entity.data.TerminalCharRange; +import net.sf.parser4j.parser.entity.parsenode.IParseNode; +import net.sf.parser4j.parser.entity.parsenode.data.IParseNodeData; +import net.sf.parser4j.parser.entity.parsenode.status.IParseNodeInErrorStatus; +import net.sf.parser4j.parser.entity.parsestate.ParseStack; +import net.sf.parser4j.parser.service.ParserException; +import net.sf.parser4j.parser.service.ParsingToStringUtil; + +/** + * parse result + * + * @author luc peuvrier + * + */ +public class ParseResult { + + private final String grammarFileUrl; // NOPMD + + /** true if syntax parsing error */ + private boolean parseError; + + /** file name where is syntax error */ + private String fileName; // NOPMD + + /** line number in input text file for syntax error */ + private int lineNumber = -1;// NOPMD + + /** column number in input text file for syntax error */ + private int columnNumber = -1;// NOPMD + + /** last terminal value read */ + private int lastTerminalValueRead = -1;// NOPMD + + /** expected terminal not found in input text file for syntax error */ + private final Set<TerminalCharRange> expectedTerminal = // NOPMD + /**/new TreeSet<TerminalCharRange>(); + + /** expected non terminal not found in input text file for syntax error */ + private final Set<String> expectedNonTerminal = // NOPMD + /**/new TreeSet<String>(); + + /** the error status for error cause of reduce error */ + private List<IParseNodeInErrorStatus> errorStatusList;// NOPMD + + /** line number in input text file for reduce error */ + private int reduceErrorLineNumber;// NOPMD + + /** column number in input text file for reduce error */ + private int reduceErrorColumnNumber;// NOPMD + + /** the resulting parse tree root node if no syntax error */ + private IParseNode resultParseNode; + + private ParseStack[] parseStacks; + + private ParseStack[] tokenParseStacks;// NOPMD + + private boolean[] tokenRecognition;// NOPMD + + private boolean[] stringTokenRecognition;// NOPMD + + private final Map<Integer, NonTerminal> nonTerminalByIdentifierMap;// NOPMD + + private boolean preserveParseNode; + + private final ParsingToStringUtil parsingToStringUtil;// NOPMD + + /** + * set error state at creation + * + * @param grammarFileUrl + * @param nonTerminalByIdentifierMap + */ + public ParseResult(final String grammarFileUrl, + final Map<Integer, NonTerminal> nonTerminalByIdentifierMap) { + this.grammarFileUrl = grammarFileUrl; + this.nonTerminalByIdentifierMap = nonTerminalByIdentifierMap; + parsingToStringUtil = new ParsingToStringUtil( + nonTerminalByIdentifierMap); + } + + public String getGrammarFileUrl() { + return grammarFileUrl; + } + + /** + * set the resulting parse tree root node + * + * @param resultParseNode + */ + public void setResultParseNode(final IParseNode resultParseNode) { + this.resultParseNode = resultParseNode; + } + + /** + * @param lastTerminalValueRead + * the last terminal value read to set + */ + public void setlastTerminalValueRead(final int lastTerminalValueRead) { + this.lastTerminalValueRead = lastTerminalValueRead; + } + + /** + * set line number and column number in input text file for syntax error + * + * @param fileName + * @param lineNumber + * line in file where is syntax error + * @param columnNumber + * column in file where is syntax error + * @param fileName + * file name where is syntax error + */ + public void setInFileInformation(final String fileName, + final int lineNumber, final int columnNumber) { + this.fileName = fileName; + this.lineNumber = lineNumber; + this.columnNumber = columnNumber; + } + + /** + * set syntax error state + * + * @param parseError + * true if syntax parsing error + */ + public void setParseError(final boolean parseError) { + this.parseError = parseError; + } + + /** + * set the reduce error informations + * + * @param errorStatusList + * the error status for error cause of reduce error + */ + public void setReduceErrorInfo( + final List<IParseNodeInErrorStatus> errorStatusList) { + this.errorStatusList = errorStatusList; + } + + /** + * + * @return true if error during parsing + */ + public boolean isInError() { + return parseError || isReduceError(); + } + + /** + * + * @return the resulting parse tree root node if no syntax error + */ + public IParseNode getResultParseNode() { + return resultParseNode; + } + + public IParseNodeData getUniqData() throws ParserException { + if (!resultParseNode.hasDataComputed()) { + throw new ParserException("node data not computed"); + } + return resultParseNode.getUniqData(); + } + + public IParseNodeData[] getDataByAlternative() throws ParserException { + if (!resultParseNode.hasDataComputed()) { + throw new ParserException("node data not computed"); + } + return resultParseNode.getDataByAlternative(); + } + + /** + * + * @return true if syntax parsing error + */ + public boolean isParseError() { + return parseError; + } + + /** + * + * @return true if reduce error while parsing + */ + public boolean isReduceError() { + return errorStatusList != null && !errorStatusList.isEmpty(); + } + + /** + * + * @return file name where is syntax error + */ + public String getFileName() { + return fileName; + } + + /** + * + * @return column number in input text file for syntax error + */ + public int getColumnNumber() { + return columnNumber; + } + + /** + * + * @return line number in input text file for syntax error + */ + public int getLineNumber() { + return lineNumber; + } + + /** + * + * @return expected non terminal not found in input text file for syntax + * error + */ + public Set<String> getExpectedNonTerminal() { + return expectedNonTerminal; + } + + /** + * + * @return expected terminal not found in input text file for syntax error + */ + public Set<TerminalCharRange> getExpectedTerminal() { + return expectedTerminal; + } + + /** + * @return the error status list + */ + public List<IParseNodeInErrorStatus> getErrorStatusList() { + return errorStatusList; + } + + /** + * + * @return line number in input text file for reduce error + */ + public int getReduceErrorLineNumber() { + return reduceErrorLineNumber; + } + + /** + * + * @return column number in input text file for reduce error + */ + public int getReduceErrorColumnNumber() { + return reduceErrorColumnNumber; + } + + @SuppressWarnings("PMD") + public void setParseStacks(final ParseStack[] parseStacks, + final ParseStack[] tokenParseStacks, + final boolean[] tokenRecognition, + final boolean[] stringTokenRecognition) { + this.parseStacks = parseStacks; + this.tokenParseStacks = tokenParseStacks; + this.tokenRecognition = tokenRecognition; + this.stringTokenRecognition = stringTokenRecognition; + } + + /** + * @return the parseStacks + */ + public ParseStack[] getParseStacks() { + return parseStacks;// NOPMD + } + + /** + * @return the tokenParseStacks + */ + public ParseStack[] getTokenParseStacks() { + return tokenParseStacks;// NOPMD + } + + /** + * @return the tokenRecognition + */ + public boolean[] getTokenRecognition() { + return tokenRecognition;// NOPMD + } + + public boolean[] getStringTokenRecognition() { + return stringTokenRecognition;// NOPMD + } + + public Map<Integer, NonTerminal> getNonTerminalByIdentifierMap() { + return nonTerminalByIdentifierMap; + } + + public void setPreserveParseNode(final boolean preserveParseNode) { + this.preserveParseNode = preserveParseNode; + } + + public boolean isPreserveParseNode() { + return preserveParseNode; + } + + @Override + public String toString() { + final StringBuilder stringBuilder = new StringBuilder(); + if (isInError()) { + stringBuilder.append("has parsing error\n"); + } else { + stringBuilder.append("does not have parsing error\n"); + } + if (preserveParseNode) { + stringBuilder.append("parse node preserved\n"); + } else { + stringBuilder.append("parse node not preserved\n"); + } + if (parseError) { + stringBuilder.append("parse failed: file "); + stringBuilder.append(fileName); + stringBuilder.append(", line "); + stringBuilder.append(lineNumber); + stringBuilder.append(" column "); + stringBuilder.append(columnNumber); + stringBuilder.append(", last character read "); + if (lastTerminalValueRead == -1) { + stringBuilder.append("EOF"); + } else if (lastTerminalValueRead < ' ' + || lastTerminalValueRead >= 0x7f) { + stringBuilder.append(String.format("0X%2X", + new Object[] { lastTerminalValueRead })); + } else { + stringBuilder.append('"'); + stringBuilder.append((char) lastTerminalValueRead); + stringBuilder.append('"'); + } + stringBuilder.append("\nexpected terminal:\n"); + for (TerminalCharRange terminalCharRange : expectedTerminal) { + stringBuilder.append('\t'); + stringBuilder.append(terminalCharRange.toString()); + stringBuilder.append('\n'); + } + stringBuilder.append("expected non terminal:\n"); + for (String nonTerminal : expectedNonTerminal) { + stringBuilder.append('\t'); + stringBuilder.append(nonTerminal); + stringBuilder.append('\n'); + } + } else { + stringBuilder.append("parse succeed\n"); + } + if (errorStatusList == null) { + stringBuilder.append("no reduce error\n"); + } else { + stringBuilder.append("reduce error: "); + for (IParseNodeInErrorStatus status : errorStatusList) { + stringBuilder.append(status.toString()); + stringBuilder.append('\n'); + } + } + + if (parseStacks != null) { + stringBuilder.append("syntax parse stacks\n"); + stringBuilder.append(parsingToStringUtil.parseStacksToString( + parseStacks, tokenRecognition, stringTokenRecognition, + false/* + * true/ addParseTree + */)); + } + + if (tokenParseStacks != null) { + stringBuilder.append("lexical parse stacks\n"); + stringBuilder.append(parsingToStringUtil.parseStacksToString( + tokenParseStacks, tokenRecognition, stringTokenRecognition, + false/* + * true/ addParseTree + */)); + } + return stringBuilder.toString(); + } + + + + public int getLastTerminalValueRead() { + return lastTerminalValueRead; + } + + public ParsingToStringUtil getParsingToStringUtil() { + return parsingToStringUtil; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm...@us...> - 2010-03-15 18:02:03
|
Revision: 1318 http://eulergui.svn.sourceforge.net/eulergui/?rev=1318&view=rev Author: jmvanel Date: 2010-03-15 18:01:56 +0000 (Mon, 15 Mar 2010) Log Message: ----------- documentation.html : add on how compile Parser4J Modified Paths: -------------- trunk/eulergui/html/documentation.html Modified: trunk/eulergui/html/documentation.html =================================================================== --- trunk/eulergui/html/documentation.html 2010-03-15 16:22:22 UTC (rev 1317) +++ trunk/eulergui/html/documentation.html 2010-03-15 18:01:56 UTC (rev 1318) @@ -11,7 +11,7 @@ <body> <p style="text-align:center;font-size: 20pt">Euler GUI Manual</p> -<p>© Jean-Marc Vanel - $Date: 2010-03-04$ - <a +<p>© Jean-Marc Vanel - $Date: 2010-03-15$ - <a href="http://eulergui.sourceforge.net/documentation.html">a view possibly older in sync. with EulerGUI release </a> - <a href="http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html">Latest @@ -23,15 +23,15 @@ <ul> <li><a href="#Introducti">Introduction</a></li> <li><a href="#Features">Features</a></li> - <li><a href="#Installati">Installation</a> + <li><a href="#Installati">Installation</a> <ul> - <li><a href="#Prerequisi">Prerequisite</a> + <li><a href="#Prerequisi">Prerequisite</a> <ul> <li><a href="#Additional">Additional steps on Mac</a></li> </ul> </li> <li><a href="#Install1">Install and run EulerGUI</a></li> - <li><a href="#Install">Install external tools</a> + <li><a href="#Install">Install external tools</a> <ul> <li><a href="#L702">Facultative tool</a></li> </ul> @@ -39,10 +39,10 @@ </ul> </li> <li><a href="#L3298">Support & community</a></li> - <li><a href="#cases">Use cases</a> + <li><a href="#cases">Use cases</a> <ul> <li><a href="#Main">Main use case</a></li> - <li><a href="#Inference">Inference engines</a> + <li><a href="#Inference">Inference engines</a> <ul> <li><a href="#case">CWM use case</a></li> <li><a href="#Drools">Drools use case</a></li> @@ -50,16 +50,16 @@ </ul> </li> <li><a href="#L3796">Which rule engine to use?</a></li> - <li><a href="#Data">Data sources</a> + <li><a href="#Data">Data sources</a> <ul> <li><a href="#Reading">Reading XMI files (UML or eCore)</a></li> - <li><a href="#Reading2">Reading plain XML files or XML Schema</a> + <li><a href="#Reading2">Reading plain XML files or XML Schema</a> <ul> <li><a href="#L2297">Redefer</a></li> <li><a href="#L2290">Gloze</a></li> </ul> </li> - <li><a href="#SPARQL">SPARQL queries as N3 sources</a> + <li><a href="#SPARQL">SPARQL queries as N3 sources</a> <ul> <li><a href="#L1134">SPARQL language</a></li> <li><a href="#L2107">Caveats</a></li> @@ -68,7 +68,7 @@ </ul> </li> <li><a href="#Reading1">Reading UML Textual files, UMT (simplified - UML )</a> + UML )</a> <ul> <li><a href="#Syntax">Syntax</a></li> <li><a href="#Usage">Usage</a></li> @@ -76,7 +76,7 @@ </li> </ul> </li> - <li><a href="#L939">Manipulating projects</a> + <li><a href="#L939">Manipulating projects</a> <ul> <li><a href="#L1191">Sub-projects</a></li> <li><a href="#L1200">Pipeline of projects (post-processing)</a></li> @@ -86,14 +86,14 @@ <li><a href="#Finding1">Finding data on the Web</a></li> <li><a href="#Finding11">Finding rules on the Web; rules for OWL concepts</a></li> - <li><a href="#Global1">Local tools</a> + <li><a href="#Global1">Local tools</a> <ul> <li><a href="#Show">Show graph</a></li> <li><a href="#Show1">Show N3 parse tree</a></li> <li><a href="#Show2">Show original source of N3 document</a></li> </ul> </li> - <li><a href="#Global">Global tools</a> + <li><a href="#Global">Global tools</a> <ul> <li><a href="#L3377">Search</a></li> <li><a href="#Generate">Generate Java code</a></li> @@ -102,12 +102,12 @@ <li><a href="#L33241">Export as XML</a></li> </ul> </li> - <li><a href="#Interopera">Interoperability with Protégé</a> + <li><a href="#Interopera">Interoperability with Protégé</a> <ul> <li><a href="#L3588">SWRL</a></li> </ul> </li> - <li><a href="#L2935">Interoperability with RDF SPARQL servers</a> + <li><a href="#L2935">Interoperability with RDF SPARQL servers</a> <ul> <li><a href="#L2943">Joseki</a></li> <li><a href="#L2958">Sesame</a></li> @@ -117,21 +117,21 @@ </ul> </li> <li><a href="#Examples">Examples</a></li> - <li><a href="#L3193">Other useful tools</a> + <li><a href="#L3193">Other useful tools</a> <ul> <li><a href="#L3221">Export from N3/RDF</a></li> <li><a href="#L3234">Import to N3/RDF</a></li> </ul> </li> <li><a href="#N-Triple">N-Triples, Turtle, and N3 formats</a></li> - <li><a href="#Logic">Logic</a> + <li><a href="#Logic">Logic</a> <ul> <li><a href="#Logic1">N3 Logic</a></li> <li><a href="#Coherent">Coherent Logic</a></li> <li><a href="#buit-ins">CWM built-ins</a></li> <li><a href="#Euler">Euler built-ins</a></li> <li><a href="#EulerGUI">EulerGUI Drools N3 engine built-ins</a></li> - <li><a href="#Translatin">Translating N3 into Drools language</a> + <li><a href="#Translatin">Translating N3 into Drools language</a> <ul> <li><a href="#Forward">Forward chaining engine and First Order Logic</a></li> @@ -143,19 +143,19 @@ </li> </ul> </li> - <li><a href="#TODO">Missing features</a> + <li><a href="#TODO">Missing features</a> <ul> <li><a href="#Implemente">Implemented features</a></li> </ul> </li> - <li><a href="#Developmen">Development</a> + <li><a href="#Developmen">Development</a> <ul> <li><a href="#Building">Building from sources</a></li> <li><a href="#Create">Create an eclipse project</a></li> - <li><a href="#Uploading">Uploading stuff on the Maven repository on - Sourceforge</a></li> + <li><a href="#Uploading">Compiling dependencies and uploading them on the + Maven repository on Sourceforge</a></li> <li><a href="#Making">Making a release</a></li> - <li><a href="#Test">Test</a> + <li><a href="#Test">Test</a> <ul> <li><a href="#L1845">Accelerate tests</a></li> <li><a href="#L1980">Gui functional tests</a></li> @@ -165,7 +165,7 @@ <li><a href="#Debug">Debug</a></li> </ul> </li> - <li><a href="#Architectu">Architecture</a> + <li><a href="#Architectu">Architecture</a> <ul> <li><a href="#Actual">Actual stuff</a></li> <li><a href="#Stuff">Stuff to refactor</a></li> @@ -325,7 +325,7 @@ href="http://eulergui.sourceforge.net/tmp/?C=M;O=D">http://eulergui.sourceforge.net/tmp/?C=M;O=D</a></p> <p><img alt="euler" src="../src/main/resources/n3_project/euler.png" width="32" -height="32" /> <img alt="drools" +height="32" /> <img alt="drools" src="../src/main/resources/n3_project/drools.png" width="45" height="44" /> <img alt="http://parser4j.sourceforge.net/_parser4j_logo.gif" src="http://parser4j.sourceforge.net/_parser4j_logo.gif" width="73" height="48" @@ -2457,7 +2457,8 @@ </table> <p>This is in the source in a script named -<strong><code>install_packages_ubuntu.sh</code></strong> .</p> +<strong><code>install_packages_ubuntu.sh</code></strong> , that does in fact +more .</p> <p></p> @@ -2648,14 +2649,15 @@ downloaded sources, make eulergui project dependent from parser4j , and remove M2_REPO/**/parser*.jar from the libraries of project eulergui .</p> -<h3 id="Uploading">Uploading stuff on the Maven repository on Sourceforge</h3> +<h3 id="Uploading">Compiling dependencies and uploading them on the Maven +repository on Sourceforge</h3> <p>As specified in pom.xml, the Maven repository for EulerGUI is here:</p> <p><a href="http://eulergui.sourceforge.net/maven2">http://eulergui.sourceforge.net/maven2</a></p> -<p></p> +<p><strong>Parser4J</strong></p> <p>Do this to upload on the EulerGUI Maven repository on Sourceforge the latest .jar from the Parser4J Sourceforge project:</p> @@ -2663,7 +2665,10 @@ <table border="1"> <tbody> <tr> - <td><pre>ant -f buildjar.xml + <td><pre>svn co https://parser4j.svn.sourceforge.net/svnroot/parser4j/trunk/parser4j/ \ + parser4j +# create an eclipse project from the parser4j directory; this will compile all +ant -f buildjar.xml VERSION=trunk mvn deploy:deploy-file \ -Durl=sftp://web.sourceforge.net/home/groups/e/eu/eulergui/htdocs/maven2 \ @@ -2984,7 +2989,7 @@ <h4 id="L1845">Accelerate tests</h4> -<p>I you're in a hurry, type this, which will avoid searching for Maven plugin +<p>If you're in a hurry, type this, which will avoid searching for Maven plugin updates, and reading from the Internet all the POM for project dependencies :</p> @@ -3022,7 +3027,9 @@ </tbody> </table> -<p></p> +<p>And if you're in a BIG hurry (but that's not recommanded) you can skip tests +with :</p> +<pre>-Dmaven.test.skip=true </pre> <h4 id="L1980">Gui functional tests</h4> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |