JavaScript analysieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JavaScript analysieren

    Hi

    Ich möchte JavaScript code in ein PHP array umwandeln. Beispiel:
    Code:
    themap = new MapTalk(); themap.add(heroclass+'portrait.jpg','So! Are those mushrooms any good?').addEvent('onComplete', function() { /*even more js code */ });map_herotransfer(10,14,true);
    PHP-Code:
    Array
    (
        [
    0] => Array
            (
                [
    'event'] => 'themap = new MapTalk(); themap.add(heroclass+"portrait.jpg","Are those any good?")'
                
    ['followers'] => Array
                               (
                                    [
    0] => '/*even more js code*/'
                               

            )

        [
    1] => Array
            (
                [
    'event'] => 'map_herotransfer(10,14,true)'
            
    )

    - Diese JavaScript 'Blöcke' (z.B. "map_herotransfer(?,?,?)" oder "themap = new MapTalk(); themap.add(......)") haben stets die gleiche Syntax.
    - Praktisch alle Blöcke können 'onComplete'-events, also 'followers' haben

    Was wäre die beste Möglichkeit, diese Aufgabe anzugehen?

    Vielen Dank im Voraus für eure Hilfe!
    Gruss
    Roman

  • #2
    Wozu soll das gut sein, was hast du vor?
    Was hindert dich daran, das JS anhand der immer gleichen Syntax in ein Array zu zerlegen?

    Kommentar


    • #3
      Hallo onemorenerd

      Mehr Informationen kann ich liefern

      Das Problem ist u.a.: Wo ist es fertig?
      Wenn ich sowas habe wie...
      Code:
      [block1-1].addEvent('onComplete',function() {
      	[block2-1].addEvent('onComplete',function() {
      		[block3-1];
      		[block3-2];
      		[block3-3].addEvent('onComplete',function() {
      			[block4-1];
      		});
      		[block3-4];
      		[block3-5];
      	});
      });
      [block1-2];
      [block1-3];
      ...welches "});" passt zu welchem ".addEvent..."?

      Der letztendliche Zweck dient der grafischen Baum-Darstellung des Codes.

      Das Problem ist, dass ich einen Lösungsweg suche. z.B. etwas Pseudo-Code von einem Ideengeber

      das JS anhand der immer gleichen Syntax in ein Array zu zerlegen?
      Was schwebt dir vor?

      Danke für die Antwort, Freundliche Grüsse
      Roman

      Kommentar


      • #4
        Wozu brauchst du eine Baumdarstellung des Codes? Geht es nur um Formatierung zur besseren Lesbarkeit (deswegen "Darstellung") oder willst du mit dem Code arbeiten (deswegen "Baum"-Struktur)?

        Kommentar


        • #5
          Ich möchte damit arbeiten (Drag&Drop-Veränderung des Codes):

          Kommentar


          • #6
            Wenn der User dragt und dropt, musst du doch im Hintergrund mit Javascript die Struktur irgendwie abbilden und entsprechend den Code dazu generieren. Dabei kannst du doch die gewünschte Struktur für das PHP-Array gleich mit erzeugen, statt später den fertigen Code zu parsen.

            Kommentar


            • #7
              Dynamisch Code erzeugen ist selten eine gute Idee. Warum nicht einen allgemeinen Code schreiben, der mit Daten gefüttert wird?

              Kommentar


              • #8
                Ich finde es eine spannende Idee, JS-Code in einer GUI zusammenstöpseln zu können. Aber der Sprung zwischen JS und PHP scheint mir hier zu kompliziert gedacht. Das Editieren geschieht beim Client und das Ergebnis ist JS-Code, der auch wieder nur beim Client ausgeführt wird. Ich sehe die Notwendigkeit nicht, zwischendurch mit PHP zu arbeiten.

                Kommentar


                • #9
                  Durchdacht ist das Schema bzw. die Funktionalität schon, mir fehlt nur noch der Weg zur Ausführung
                  Ich kommuniziere dafür per JSON, weil auch serverseitige Blöcke und andere Mechanismen hinzugefügt werden können.

                  @h3ll Irgendwann & -wie muss ich den allgemeinen Code ja auch übersetzen. Wie das gemacht wird ist schlussendlich egal (ausser dass ich mir nat. bei deiner Version das GUI sparen kann)

                  @onemorenerd der fertige Code wird in der Datenbank gespeichert. Aus Performancegründen möchte ich den nicht zur Laufzeit parsen, sondern als ausführbaren Code zur Verfügung haben. (Der Code wird nachher von vielen Spielern gebraucht)

                  Ich suche weiterhin nach einer Lösungsidee - um Hilfe wäre ich sehr dankbar. (Vielleicht gits ja was wie Tidy für JavaScript, oder eine selbst zu definierende Syntax?)

                  Kommentar


                  • #10
                    Zitat von Onyxagargaryll Beitrag anzeigen
                    der fertige Code wird in der Datenbank gespeichert. Aus Performancegründen möchte ich den nicht zur Laufzeit parsen, sondern als ausführbaren Code zur Verfügung haben.
                    Wieso musst du den Code überhaupt parsen (mit PHP)? Es ist doch Javascript-Code oder nicht? Und du speicherst den in der DB, gibst ihn später irgendwie aus und er wird im Browser des Users ausgeführt, oder nicht?

                    Ich wiederhole: Ich sehe keine Notwendigkeit, mit PHP an dem Code rumzufummeln. Klär mich auf!

                    Kommentar


                    • #11
                      Das habe ich doch gerade erklärt?
                      Es können auch andere Blöcke (z.B. serverseitiger PHP-Code) per Drag&Drop eingefügt werden. Und, wie gesagt, ob ich die Blöcke in JS code auf der Clientseite oder der Serverseite wandle spielt (vom JS her) keine Rolle. Da ich aber auch andere Blöcke "parsen", "übersetzen" bzw. "transformieren" muss macht es Sinn, dies nicht zur Hälfte beim Client und zur Hälfte serverseitig zu machen.
                      Und den fertigen JS code in der DB hat den Grund, weil die Spieler oft und schnell auf solche Codefragmente zugreifen. Wenn dieser bereits übersetzt ist spare ich u.a. den Spielern viel Rechenzeit.

                      Ich habe die Gedanken hinter diesem Mechanismus gerne erklärt, möchte aber nicht weiter darauf eingehen.

                      Nochmals vielen Dank im Voraus für die Hilfe beim Suchen eines (PHP-) Lösungsansatzes.

                      Kommentar


                      • #12
                        Auweia. PHP-Code hat in der Datenbank noch weniger verloren. Ich glaub du verrennst dich in eine Sackgasse.

                        Kommentar


                        • #13
                          Ich habe keinen PHP Code in der Datenbank. Nur der JS-Code ist in der Datenbank.

                          Bitte! Bleibt bei meiner Frage.

                          Kommentar


                          • #14
                            Du bist offenbar nicht an einer guten Lösung interessiert, du willst nur "deine" Lösung realisiert haben, egal ob sinnvoll oder nicht.

                            Kommentar


                            • #15
                              Ich möchte den Lösungsweg nicht diskutieren, ja, da dieser bereits oft genug Thema war. Entschuldigt meine Reaktion - ich wollte wirklich nur Hilfe bei der Ideensuche, wie das mit PHP realisiert werden könnte.

                              Falls ihr meine Reaktion persönlich aufgefasst habt, tut mir das Leid, das war so nicht beabsichtigt.

                              Kommentar

                              Lädt...
                              X