Loading rs/parser.cup 0 → 100644 +47 −0 Changes for rs/parser.cup: 47 added lines, 0 removed lines. Original line number Diff line number Diff line package org.mbedsys.jvar; /* * Autor: Emeric Verschuur <emericv@mbedsys.org> */ import java_cup.runtime.*; parser code {: public Node root = null; :}; terminal TEND, TOBJBEGIN, TOBJEND, TARRBEGIN, TARREND; terminal TMEMBERSEP, TELEMENTSEP; terminal TSYNERRESC, TSYNERRUNI, TSYNERR; terminal String TSTRING; terminal Variant TVARIANT; non terminal Variant members; non terminal Variant elements; non terminal Variant variant; non terminal Variant root; start with root; root ::= variant {: :} | TEND {: :} ; variant ::= TOBJBEGIN members TOBJEND {: :} | TARRBEGIN elements TARREND {: :} | TOBJBEGIN TOBJEND {: :} | TARRBEGIN TARREND {: :} | TSTRING {: :} | TVARIANT {: :} ; members ::= members TELEMENTSEP TSTRING TMEMBERSEP variant {: :} | TSTRING TMEMBERSEP variant {: :} ; elements ::= elements TELEMENTSEP variant {: :} | variant {: :} ; rs/scanner.lex 0 → 100644 +138 −0 Changes for rs/scanner.lex: 138 added lines, 0 removed lines. Original line number Diff line number Diff line package org.mbedsys.jvar; /** * Autor: Emeric Verschuur <emericv@mbedsys.org> */ import java.io.EOFException; import java.io.IOException; %% %class JSONScanner %type JSONTocken %unicode %line %column %{ private StringBuffer string = new StringBuffer(); private Variant mkVariantNumber() { long v = Long.parseLong(yytext()); if ((v & 0xFFFFFFFF00000000L) == 0) { return new VariantInt((int)v); } else { return new VariantLong(v); } } public boolean ready() throws IOException { while (true) { if ((zzCurrentPos + 1) < zzEndRead) { while ((zzCurrentPos + 1) < zzEndRead) { if (Character.isWhitespace(zzBuffer[zzCurrentPos])) { zzCurrentPos++; } else { return true; } } } else if (this.zzReader != null && this.zzReader.ready()) { if (zzRefill()) { throw new EOFException(); } } else { return false; } } } public int getLine() { return yyline; } public int getColumn() { return yycolumn; } public int getNbChar() { return yychar; } public boolean isAtBOL() { return zzAtBOL; } public boolean isEOFDone() { return zzEOFDone; } %} space = [\t\n\r ] kw_null = null kw_undefined = undefined kw_true = true kw_false = false kw_nan = nan kw_infinity = [\-\+]?infinity number = \-?[[:digit:]]+ number_ext = \-?[[:digit:]]+(\.[[:digit:]]+)?(e[\-\+]?[[:digit:]]+)? coma = , semicolon = : dblcote = \" square_bracket_open = \[ square_bracket_close = \] curly_bracket_open = \{ curly_bracket_close = \} escape_unicode = \\u[0-9a-f]{4} escape_backslash = \\ escape_dblcote = \\\" escape_backspace = \\b escape_formfeed = \\f escape_newline = \\n escape_car_ret = \\r escape_horiz_tab = \\t %state STRING %% <<EOF>> { yybegin(YYINITIAL); return new JSONTocken(JSONTocken.TEOF);} <YYINITIAL>{ {kw_null} { return new JSONTocken(JSONTocken.TVARIANT, Variant.NULL); } {kw_undefined} { return new JSONTocken(JSONTocken.TVARIANT, Variant.NULL); } {kw_true} { return new JSONTocken(JSONTocken.TVARIANT, Variant.TRUE); } {kw_false} { return new JSONTocken(JSONTocken.TVARIANT, Variant.FALSE); } {kw_nan} { return new JSONTocken(JSONTocken.TVARIANT, Variant.NULL); } {kw_infinity} { return new JSONTocken(JSONTocken.TVARIANT, Variant.NULL); } {number} { return new JSONTocken(JSONTocken.TVARIANT, mkVariantNumber()); } {number_ext} { return new JSONTocken(JSONTocken.TVARIANT, new VariantDouble(Double.parseDouble(yytext()))); } {square_bracket_open} { return new JSONTocken(JSONTocken.TARRBEGIN); } {square_bracket_close} { return new JSONTocken(JSONTocken.TARREND); } {curly_bracket_open} { return new JSONTocken(JSONTocken.TOBJBEGIN); } {curly_bracket_close} { return new JSONTocken(JSONTocken.TOBJEND); } {coma} { return new JSONTocken(JSONTocken.TELEMENTSEP); } {semicolon} { return new JSONTocken(JSONTocken.TMEMBERSEP); } {dblcote} { string.setLength(0); yybegin(STRING); } {space} { } . { return new JSONTocken(JSONTocken.TSYNERR); } } <STRING>{ {dblcote} { yybegin(YYINITIAL); return new JSONTocken(JSONTocken.TSTRING, string.toString()); } {escape_backspace} { string.append('\b'); } {escape_formfeed} { string.append('\f'); } {escape_horiz_tab} { string.append('\t'); } {escape_newline} { string.append('\n'); } {escape_car_ret} { string.append('\r'); } {escape_dblcote} { string.append('\"'); } {escape_backslash} { string.append('\\'); } {escape_unicode} { string.append((char)Short.parseShort(yytext().substring(2, 6), 16)); } .|{space} { string.append(yytext()); } } src/main/java/org/mbedsys/jvar/KeyNotFoundException.java +1 −1 Changes for src/main/java/org/mbedsys/jvar/KeyNotFoundException.java: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ public class KeyNotFoundException extends RuntimeException { /** * */ private static final long serialVersionUID = 1L; private static final long serialVersionUID = -3405718663353821037L; public KeyNotFoundException() { super(); Loading src/main/java/org/mbedsys/jvar/Variant.java +756 −35 File changed.Preview size limit exceeded, changes collapsed. Show changes src/main/java/org/mbedsys/jvar/VariantList.java +5 −0 Changes for src/main/java/org/mbedsys/jvar/VariantList.java: 5 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package org.mbedsys.jvar; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; Loading @@ -40,6 +41,10 @@ public class VariantList extends Variant implements List<Variant> { data = value; } public VariantList() { data = new ArrayList<>(); } public VariantList add(boolean value) { data.add(new VariantBool(value)); return this; Loading Loading
rs/parser.cup 0 → 100644 +47 −0 Changes for rs/parser.cup: 47 added lines, 0 removed lines. Original line number Diff line number Diff line package org.mbedsys.jvar; /* * Autor: Emeric Verschuur <emericv@mbedsys.org> */ import java_cup.runtime.*; parser code {: public Node root = null; :}; terminal TEND, TOBJBEGIN, TOBJEND, TARRBEGIN, TARREND; terminal TMEMBERSEP, TELEMENTSEP; terminal TSYNERRESC, TSYNERRUNI, TSYNERR; terminal String TSTRING; terminal Variant TVARIANT; non terminal Variant members; non terminal Variant elements; non terminal Variant variant; non terminal Variant root; start with root; root ::= variant {: :} | TEND {: :} ; variant ::= TOBJBEGIN members TOBJEND {: :} | TARRBEGIN elements TARREND {: :} | TOBJBEGIN TOBJEND {: :} | TARRBEGIN TARREND {: :} | TSTRING {: :} | TVARIANT {: :} ; members ::= members TELEMENTSEP TSTRING TMEMBERSEP variant {: :} | TSTRING TMEMBERSEP variant {: :} ; elements ::= elements TELEMENTSEP variant {: :} | variant {: :} ;
rs/scanner.lex 0 → 100644 +138 −0 Changes for rs/scanner.lex: 138 added lines, 0 removed lines. Original line number Diff line number Diff line package org.mbedsys.jvar; /** * Autor: Emeric Verschuur <emericv@mbedsys.org> */ import java.io.EOFException; import java.io.IOException; %% %class JSONScanner %type JSONTocken %unicode %line %column %{ private StringBuffer string = new StringBuffer(); private Variant mkVariantNumber() { long v = Long.parseLong(yytext()); if ((v & 0xFFFFFFFF00000000L) == 0) { return new VariantInt((int)v); } else { return new VariantLong(v); } } public boolean ready() throws IOException { while (true) { if ((zzCurrentPos + 1) < zzEndRead) { while ((zzCurrentPos + 1) < zzEndRead) { if (Character.isWhitespace(zzBuffer[zzCurrentPos])) { zzCurrentPos++; } else { return true; } } } else if (this.zzReader != null && this.zzReader.ready()) { if (zzRefill()) { throw new EOFException(); } } else { return false; } } } public int getLine() { return yyline; } public int getColumn() { return yycolumn; } public int getNbChar() { return yychar; } public boolean isAtBOL() { return zzAtBOL; } public boolean isEOFDone() { return zzEOFDone; } %} space = [\t\n\r ] kw_null = null kw_undefined = undefined kw_true = true kw_false = false kw_nan = nan kw_infinity = [\-\+]?infinity number = \-?[[:digit:]]+ number_ext = \-?[[:digit:]]+(\.[[:digit:]]+)?(e[\-\+]?[[:digit:]]+)? coma = , semicolon = : dblcote = \" square_bracket_open = \[ square_bracket_close = \] curly_bracket_open = \{ curly_bracket_close = \} escape_unicode = \\u[0-9a-f]{4} escape_backslash = \\ escape_dblcote = \\\" escape_backspace = \\b escape_formfeed = \\f escape_newline = \\n escape_car_ret = \\r escape_horiz_tab = \\t %state STRING %% <<EOF>> { yybegin(YYINITIAL); return new JSONTocken(JSONTocken.TEOF);} <YYINITIAL>{ {kw_null} { return new JSONTocken(JSONTocken.TVARIANT, Variant.NULL); } {kw_undefined} { return new JSONTocken(JSONTocken.TVARIANT, Variant.NULL); } {kw_true} { return new JSONTocken(JSONTocken.TVARIANT, Variant.TRUE); } {kw_false} { return new JSONTocken(JSONTocken.TVARIANT, Variant.FALSE); } {kw_nan} { return new JSONTocken(JSONTocken.TVARIANT, Variant.NULL); } {kw_infinity} { return new JSONTocken(JSONTocken.TVARIANT, Variant.NULL); } {number} { return new JSONTocken(JSONTocken.TVARIANT, mkVariantNumber()); } {number_ext} { return new JSONTocken(JSONTocken.TVARIANT, new VariantDouble(Double.parseDouble(yytext()))); } {square_bracket_open} { return new JSONTocken(JSONTocken.TARRBEGIN); } {square_bracket_close} { return new JSONTocken(JSONTocken.TARREND); } {curly_bracket_open} { return new JSONTocken(JSONTocken.TOBJBEGIN); } {curly_bracket_close} { return new JSONTocken(JSONTocken.TOBJEND); } {coma} { return new JSONTocken(JSONTocken.TELEMENTSEP); } {semicolon} { return new JSONTocken(JSONTocken.TMEMBERSEP); } {dblcote} { string.setLength(0); yybegin(STRING); } {space} { } . { return new JSONTocken(JSONTocken.TSYNERR); } } <STRING>{ {dblcote} { yybegin(YYINITIAL); return new JSONTocken(JSONTocken.TSTRING, string.toString()); } {escape_backspace} { string.append('\b'); } {escape_formfeed} { string.append('\f'); } {escape_horiz_tab} { string.append('\t'); } {escape_newline} { string.append('\n'); } {escape_car_ret} { string.append('\r'); } {escape_dblcote} { string.append('\"'); } {escape_backslash} { string.append('\\'); } {escape_unicode} { string.append((char)Short.parseShort(yytext().substring(2, 6), 16)); } .|{space} { string.append(yytext()); } }
src/main/java/org/mbedsys/jvar/KeyNotFoundException.java +1 −1 Changes for src/main/java/org/mbedsys/jvar/KeyNotFoundException.java: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ public class KeyNotFoundException extends RuntimeException { /** * */ private static final long serialVersionUID = 1L; private static final long serialVersionUID = -3405718663353821037L; public KeyNotFoundException() { super(); Loading
src/main/java/org/mbedsys/jvar/Variant.java +756 −35 File changed.Preview size limit exceeded, changes collapsed. Show changes
src/main/java/org/mbedsys/jvar/VariantList.java +5 −0 Changes for src/main/java/org/mbedsys/jvar/VariantList.java: 5 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package org.mbedsys.jvar; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; Loading @@ -40,6 +41,10 @@ public class VariantList extends Variant implements List<Variant> { data = value; } public VariantList() { data = new ArrayList<>(); } public VariantList add(boolean value) { data.add(new VariantBool(value)); return this; Loading