JSON数组LL(1)是否可解析?

时间:2013-07-08 19:59:02

标签: json grammar lex

我听说如果你解析一些LL(1)它更快,所以我想知道你是否要解析一个JSON字符串这可以通过使用LL(1)解析器来完成

5 个答案:

答案 0 :(得分:2)

是的,它们是,因为JSON语法没有歧义。

答案 1 :(得分:1)

是的,它是LL(1)可解析的。它具有无上下文语法,没有歧义。

答案 2 :(得分:1)

数组:

[] |
[ elements ]

元素:

value |
value , elements

对我来说似乎不是LL(1)。 Clear无法解析“价值”

答案 3 :(得分:0)

是的。亲自了解一下,JSON字符串解析器的实现可以通过包含不超过1个令牌的自动机来完成。换句话说,有一个马尔可夫链解决方案。

答案 4 :(得分:0)

<块引用>

数组:

[ ] | [元素]

元素:

值|值,元素

对我来说似乎不是 LL(1)。清除无法解析“值”

如果这样呢?

<!DOCTYPE html>
<html lang="it">

<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="Normalize.css">
  <link rel="stylesheet" href="Style.css">
  <title>Document</title>
</head>


<body>


  <div class="container justify flex-row">
    <div class="flex-col">
      <div class="justify flex-row">
        <h1 class="intro">Vuoi conoscere quali potrebbero <br> essere i <strong>costi</strong> della attività di <span class="orange">logistica</span> e <br>
          <span class="orange">trasporto</span> se affidassi i tuoi prodotti a <br> Gruppo Sinergia?</h1>
      </div>
      <div class="justify flex-row">
        <h2 class="orange">Calcola il tuo preventivo!</h2>
      </div>
      <div class="justify flex-row">
        <h3 class="tariffe"> <span class="bold tartitle">Tariffa di Gestione</span>: comprende le tutte le attività di gestione del prodotto, le attività di gestione<br> dell’ordine, le attività di gestione del reso e il trasporto nazionale e internazionale.</h3>
      </div>
      <div class="justify flex-row">
        <h3 class="tariffe"><span class="bold tartitle">Tariffa di Stoccaggio</span>: rappresenta il valore del singolo prodotto per la conservazione presso la<br> struttura di Gruppo Sinergia.</h3>
      </div>
      <!--^tariffe^-->
      <div class="justify flex-row">
        <p class="tabtitle">TIPOLOGIA PRODOTTO</p>
      </div>


      <!--Parte di codice con button-->
      <div class="justify evenly flex-row">
        <div class="flex-col">
          <div class="flex-row">
            <button id="sel" class="btn bottoneCategoria">Abbigliamento e Scarpe</button>
          </div>
          <div class="flex-row">
            <button id="sel2" class="btn bottoneCategoria">Pet & Food</button>
          </div>
          <div class="flex-row">
            <button id="sel3" class="btn bottoneCategoria">Sport e Tempo libero</button>
          </div>
        </div>
        <div class="flex-col">
          <div class="flex-row">
            <button id="sel4" class="btn bottoneCategoria">Elettronica e Informatica</button>
          </div>
          <div class="flex-row">
            <button id="sel5" class="btn bottoneCategoria">Casa e Cucina</button>
          </div>
          <div class="flex-row">
            <button id="sel6" class="btn bottoneCategoria">Auto e Moto</button>
          </div>
        </div>
        <div class="flex-col">
          <div class="flex-row">
            <button id="sel7" class="btn bottoneCategoria">Food & Beverage</button>
          </div>
          <div class="flex-row">
            <button id="sel8" class="btn bottoneCategoria">Belleza e Salute</button>
          </div>
          <div class="flex-row">
            <button id="sel9" class="btn bottoneCategoria">Altro</button>
          </div>
        </div>
      </div>


      <div class="justify flex-row">
        <p class="tabtitle">DIMENSIONI PRODOTTO</p>
      </div>


      <div class="flex-row justify evenly">
        <div class="flex-col">
          <div class="flex-row">
            <button class="unbtn" onclick="hide()">Standard</button>
          </div>
        </div>
        <div class="flex-col">
          <div class="flex-row">
            <button class="unbtn" onclick="hide2()">Fuori misura</button>
          </div>
        </div>
      </div>


      <div id="demo2" class="justify m-30 evenly bg flex-row hide">
        <div class="flex-col">
          <div class="flex-row">
            <p>Inserisci le dimensioni per il singolo prodotto (cm)</p>
          </div>
          <div class="flex-row justify evenly">
            <input class="small info2" type="text" placeholder="lunghezza">
            <input class="small info2" type="text" placeholder="larghezza">
            <input class="small info2" type="text" placeholder="altezza">
          </div>
        </div>
      </div>


      <div id="demo" class="justify m-30 evenly flex-row bg hide">
        <div class="flex-col">
          <div class="align flex-row">
            <input class="cont" type="radio" value="Busta 35x25x3" name="Scatola"> Busta 35x25x3
          </div>
          <div class="align flex-row">
            <input class="cont" type="radio" value="Busta 39x31x5" name="Scatola"> Busta 39x31x5
          </div>
          <div class="align flex-row">
            <input class="cont" type="radio" value="Scatola 27x16x10" name="Scatola"> Scatola 27x16x10
          </div>
        </div>
        <div class="flex-col">
          <div class="align flex-row">
            <input class="cont" type="radio" value="Scatola 24x15x17" name="Scatola"> Scatola 24x15x17
          </div>
          <div class="align flex-row">
            <input class="cont" type="radio" value="Scatola 37x28x8" name="Scatola"> Scatola 37x28x8
          </div>
          <div class="align flex-row">
            <input class="cont" type="radio" value="Scatola 44x30x9" name="Scatola"> Scatola 44x30x9
          </div>
        </div>
        <div class="flex-col">
          <div class="align flex-row">
            <input class="cont" type="radio" value="Scatola 61x46x40" name="Scatola"> Scatola 61x46x40
          </div>
          <div class="align flex-row">
            <input class="cont" type="radio" value="Scatola 51x36x12" name="Scatola"> Scatola 51x36x12
          </div>
          <div class="align flex-row">
            <input class="cont" type="radio" value="Scatola 59x38x32" name="Scatola"> Scatola 59x38x32
          </div>
        </div>
      </div>


      <div class="flex-row bg m-7 justify evenly">
        <div class="flex-col">
          <div class="align flex-row">
            <input class="cont" type="radio" value="0-1 kg" name="Peso"> 0-1 kg
          </div>
          <div class="align flex-row">
            <input class="cont" type="radio" value="3-5 kg" name="Peso"> 3-5 kg
          </div>
        </div>
        <div class="flex-col">
          <div class="align flex-row">
            <input class="cont" type="radio" value="1-2 kg" name="Peso"> 1-2 kg
          </div>
          <div class="align flex-row">
            <input class="cont" type="radio" value="5-10 kg" name="Peso"> 5-10 kg
          </div>
        </div>
        <div class="flex-col">
          <div class="align flex-row">
            <input class="cont" type="radio" value="2-3 kg" name="Peso"> 2-3 kg
          </div>
        </div>
      </div>


      <div class="justify evenly flex-row">
        <div class="flex-col">
          <p>TARIFFA DI GESTIONE</p>
        </div>
        <div class="flex-col">
          <p>TARIFFA DI STOCCAGGIO</p>
        </div>
      </div>

      <div class="tabcosti justify flex-row">
        <div class="flex-col">
          <p>€ <span class="white">4,56</span></p>
        </div>
        <div class="flex-col">
          <p class="m-left-50">€ <span class="white">0,16</span> <span class="x-small">al mese</span></p>
        </div>
      </div>

      <div class="flex-row tabcosti2">
        <div class="flex-col align">
          <div class="flex-row">
            <p>€ <span class="orange">3,12</span><span> spedizione</span> ITALIA</p>
          </div>
          <div class="flex-row">
            <p>€ <span class="orange">6,70</span><span> spedizione</span> EUROPA</p>
          </div>
          <div class="flex-row">
            <p class="margin-left">€ <span class="orange">6,70</span><span> spedizione</span> WORLDWIDE* ZONA 6</p>
          </div>
        </div>
        <div class="flex-col spacer"></div>
      </div>


      <div class="flex-row justify intro">
        <p class="tariffe">
          I valori sono calcolati con una media non superiore ai 10 ordini al giorni.<br> Per progetti con movimentazioni maggiori sono previste tariffe migliorative.<br> Se vuoi una quotazione ad hoc per iltuo modello di business e la tua tipologia<br>          di prodotti, contattaci!
        </p>
      </div>


      <div class="justify flex-row bg">
        <div class="flex-col">
          <div class="flex-row">
            <p>Nome e Cognome</p>
          </div>
          <div class="flex-row">
            <p>E-mail</p>
          </div>
          <div class="flex-row">
            <p>Telefono</p>
          </div>
        </div>
        <div class="flex-col">
          <div class="flex-row">
            <input class="small info m-14" type="text">
          </div>
          <div class="flex-row">
            <input class="small info m-14" type="text">
          </div>
          <div class="flex-row">
            <input class="small info m-14" type="text">
          </div>
        </div>
      </div>


      <div class="flex-row m-7 justify">
        <button class="richiedi">
                    Richiedi un preventivo
                </button>
      </div>

    </div>
  </div>

</body>

</html>