Learning Lua Step-By-Step (Part 13)

This entry is part 13 of 25 in the series Learning Lua Step-By-Step

Explore two powerful tree-based data structures in Lua: a quadtree for sorting 3D objects by depth, and a trie for efficient word searching. Learn how these data structures work and how to implement them in your own Lua projects.

Learning Lua Step-By-Step (Part 11)

This entry is part 1 of 25 in the series Learning Lua Step-By-Step

Learn about error handling in Lua programming, including the use of pcall, xpcall, and assert functions. Explore practical exercises and best practices for managing errors in Lua scripts.

Learning Lua Step-By-Step (Part 9): Exploring Metatables and Operator Overloading

This entry is part 10 of 25 in the series Learning Lua Step-By-Step

Welcome to the ninth installment of our “Learning Lua Step-By-Step” series! In this lesson, we’ll dive deep into the world of metatables in Lua. Metatables are a powerful feature that allow you to customize the behavior of Lua tables, enabling advanced techniques such as operator overloading, object-oriented programming, and more. We’ll explore what metatables are,

Learning Lua Step-By-Step (Part 8)

This entry is part 9 of 25 in the series Learning Lua Step-By-Step

Learn how to create your own Lua modules in this comprehensive guide. Explore encapsulation using closures, understand module loading, and master the art of modular programming in Lua.

Learning Lua Step-By-Step (Part 7)

This entry is part 8 of 25 in the series Learning Lua Step-By-Step

Learn Object-Oriented Programming in Lua with this comprehensive guide. Explore classes, inheritance, polymorphism, and more, with plenty of example code to solidify your understanding.

Learning Lua Step-By-Step (Part 2)

This entry is part 3 of 25 in the series Learning Lua Step-By-Step

Dive deeper into the fundamental building blocks of Lua programming. Learn about variables, conditional statements, functions, and loops. Explore how to get user input and control the flow of your Lua programs.

Learning Lua Step-By=Step

This entry is part 2 of 25 in the series Learning Lua Step-By-Step

Learn Lua programming from the ground up with this step-by-step tutorial. Explore the fundamentals of Lua, including data types, console output, and more. Perfect for beginners ages 10 and up.

Introduction to Language-Oriented Programming

Explore the synergy between Language-Oriented Programming (LOP) and Artificial Intelligence (AI) in revolutionizing software development. Learn how domain-specific languages (DSLs) empower developers to express solutions intuitively, and discover the potential of AI in DSL design, development, and usage optimization.

Tree Rewriting And Shunting Yard Parsers

This entry is part 2 of 2 in the series Handling Associativity And Precedence in Handwritten Parser

Introduction Last time we discussed our mission, built a lexer and tree printer to be used throughout our experiments, and introduced the Recursive decent parser. Parsing mathematical expressions involves interpreting their structure, which can be complex due to the presence of operators with different precedence levels and associativity rules. In this article series, we delve into

Handling Associativity and Precedence in Handwritten Parsers

This entry is part 1 of 2 in the series Handling Associativity And Precedence in Handwritten Parser

In the context of Abstract Syntax Trees (ASTs) and parse trees, the terms “higher” and “lower” precedence, as well as tree “depth,” take on a different meaning due to the way parsers traverse the tree structure. In this context, “higher” precedence refers to nodes that are deeper in the tree, further away from the root. When parsers descend into the tree to evaluate expressions or execute algorithms, they typically start at the root and move downwards towards the leaves. Therefore, nodes that are deeper in the tree, or have a higher depth, are processed first, followed by nodes closer to the root. Conversely, nodes closer to the root have lower depth and are processed later in the parsing or evaluation process. This understanding is crucial for parsers and algorithms that rely on tree traversal to correctly interpret and evaluate expressions or perform other operations on tree structures. I have heard these terms used in reverse and for trees in general, this may be correct. I mention this because it can cause confusion, it is worth clarifying these terms when conversing with others.