Code Monkey home page Code Monkey logo

shark's Introduction

shark browser

Toy Browser Project for Understanding Browser Engines. I implement a simple version of the browser in this project.

DOM Tree

Currently, there are only two Nodes of Dom, Element and Text.

HTML Parser

The HTML parser in this project is very strict.

  1. No unnecessary spaces are allowed. ex)

    <html > <!--(x)-->
    <html> <!--(o)-->
    <div id ="div1"> <!--(x)-->
    <div id="div"> <!--(o)-->
  2. Element omission is not allowed.

  3. It does not allow omission of closed tags.



Implemented so far

Tokenizes elements in HTML like the following (character is not tokenized yet).

<html><head></head><body><div id="div1"></div><div id="div2"></div></body></html>

image

Plan

  1. Implementing character tokenization.
  2. Logic to create each token as an Element or Text object according to the type of token.
  3. Implementation of HTMLTreeBuilder that creates a DOM tree based on the object created in step 2.
  4. Implement a simple version of the css parser.

shark's People

Contributors

keltion avatar

Watchers

 avatar

shark's Issues

Memory leak 발생

parse_text, parse_nodes에서 메모리를 할당하고 해제를 하지않아 memory leak이 발생
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.