Mercurial Hosting > luan
comparison src/luan/modules/parsers/Css.java @ 1330:f41919741100
fix security
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 11 Feb 2019 01:38:55 -0700 |
parents | 8d54bcc0b6d3 |
children | 25746915a241 |
comparison
equal
deleted
inserted
replaced
1329:5a39b006acd1 | 1330:f41919741100 |
---|---|
1 package luan.modules.parsers; | 1 package luan.modules.parsers; |
2 | 2 |
3 import luan.LuanState; | 3 import luan.LuanState; |
4 import luan.LuanTable; | 4 import luan.LuanTable; |
5 import luan.LuanException; | |
5 import luan.lib.parser.Parser; | 6 import luan.lib.parser.Parser; |
6 | 7 |
7 | 8 |
8 public final class Css { | 9 public final class Css { |
9 | 10 |
10 public static LuanTable style(LuanState luan,String text) { | 11 public static LuanTable style(LuanState luan,String text) { |
11 return new Css(luan,text).parseStyle(); | 12 try { |
13 return new Css(luan,text).parseStyle(); | |
14 } catch(LuanException e) { | |
15 throw new RuntimeException(e); | |
16 } | |
12 } | 17 } |
13 | 18 |
14 private final LuanState luan; | 19 private final LuanState luan; |
15 private final Parser parser; | 20 private final Parser parser; |
16 | 21 |
17 private Css(LuanState luan,String text) { | 22 private Css(LuanState luan,String text) { |
18 this.luan = luan; | 23 this.luan = luan; |
19 this.parser = new Parser(text); | 24 this.parser = new Parser(text); |
20 } | 25 } |
21 | 26 |
22 private LuanTable parseStyle() { | 27 private LuanTable parseStyle() throws LuanException { |
23 LuanTable tbl = new LuanTable(luan); | 28 LuanTable tbl = new LuanTable(luan); |
24 while( matchSpace() ); | 29 while( matchSpace() ); |
25 while( !parser.endOfInput() ) { | 30 while( !parser.endOfInput() ) { |
26 int start = parser.currentIndex(); | 31 int start = parser.currentIndex(); |
27 if( !matchPropertyChar() ) | 32 if( !matchPropertyChar() ) |
35 | 40 |
36 start = parser.currentIndex(); | 41 start = parser.currentIndex(); |
37 while( !parser.endOfInput() && parser.noneOf(";") ); | 42 while( !parser.endOfInput() && parser.noneOf(";") ); |
38 String val = parser.textFrom(start).trim(); | 43 String val = parser.textFrom(start).trim(); |
39 | 44 |
40 tbl.rawPut(prop,val); | 45 tbl.put(prop,val); |
41 parser.match(';'); | 46 parser.match(';'); |
42 while( matchSpace() ); | 47 while( matchSpace() ); |
43 } | 48 } |
44 return tbl; | 49 return tbl; |
45 } | 50 } |