File: Indent.pm

package info (click to toggle)
libpegex-perl 0.75-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 908 kB
  • sloc: perl: 3,288; makefile: 43; sh: 2
file content (16 lines) | stat: -rw-r--r-- 911 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package Pegex::Parser::Indent;

# The indentation levels of consecutive lines are used to generate INDENT and
# DEDENT tokens, using a stack, as follows. Before the first line of the file
# is read, a single zero is pushed on the stack; this will never be popped off
# again. The numbers pushed on the stack will always be strictly increasing
# from bottom to top. At the beginning of each logical line, the line’s
# indentation level is compared to the top of the stack. If it is equal,
# nothing happens. If it is larger, it is pushed on the stack, and one INDENT
# token is generated. If it is smaller, it must be one of the numbers
# occurring on the stack; all numbers on the stack that are larger are popped
# off, and for each number popped off a DEDENT token is generated. At the end
# of the file, a DEDENT token is generated for each number remaining on the
# stack that is larger than zero. ''

1;